当前位置: 首页 > news >正文

南京公共工程建设中心网站网站推广在哪好

南京公共工程建设中心网站,网站推广在哪好,如何自己做直播网站,作品集模板网站写在前面: 做题环境如下: 题目渠道:牛客网 HJ51 输出单向链表中倒数第k个结点 华为机试题 编程语言:C 一、题目描述 描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针…

写在前面:

做题环境如下:
题目渠道:牛客网 HJ51 输出单向链表中倒数第k个结点 华为机试题
编程语言:C++

一、题目描述

描述
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。

链表结点定义如下:

struct ListNode
{int m_nKey;ListNode* m_pNext;
};

正常返回倒数第k个结点指针,异常返回空指针.
要求:
(1)正序构建链表;
(2)构建后要忘记链表长度。
数据范围:链表长度满足 [1,1000],链表中数据满足 [0,10000]
输入描述:
输入说明

1 输入链表结点个数
2 输入链表的值
3 输入k的值

输出描述:

输出一个整数

示例1
输入:

8
1 2 3 4 5 6 7 8
4

输出

5

说明:本题有多组样例输入。

二、题目分析&解题思路

2.1 处理好输入

牛客网与leetCode 不同,牛客 需要自己处理好输入,构建输入环境,而这里题目给出了单链表节点类型的写法,那么如果再使用 容器 list 那么就有点没意思了,因此需要自己逐个添加节点,设置节点值、下一个节点指针等,这里需要注意 本题有多组样例输入 那么说明我们需要把我们的代码写在一个 while 循环里,供测试用例循环输入:

    int number;while (cin >> number) {//循环测试用例输入ListNode* head = new ListNode();//头节点ListNode* next = new ListNode();bool bflag = true;while (number > 0) {int val;cin >> val;ListNode* nodeTemp = new ListNode();//构建每一个节点nodeTemp->m_nKey = val;nodeTemp->m_pNext = nullptr;if (bflag) {head = nodeTemp;//先将头节点保存next = head;bflag = false;} else {next->m_pNext = nodeTemp;//逐个链接起来next = next->m_pNext;}--number;}int key;cin >> key;getReversKeyNode(head, key);}

2.2 处理输出

也就是实现将倒数第 K 个节点值输出,这里直接遍历所有的节点,保存到一个 vector 中,直接根据K 计算出节点下标,输出即可,代码复杂度为 O(n)

void getReversKeyNode(ListNode* head, int key) {vector<ListNode*> vctTemp;while (head != nullptr) {vctTemp.push_back(head);head = head->m_pNext;}if (vctTemp.size() > 0) {if (key <= vctTemp.size() && key >= 0 ) {cout << vctTemp[vctTemp.size() - key]->m_nKey << endl;//计算下标} else {cout << "error" << endl;}}
}

三、代码实现

#include <iostream>
#include <vector>
using namespace std;
typedef struct ListNode {int m_nKey;ListNode* m_pNext;
} ListNode;
void getReversKeyNode(ListNode* head, int key) {vector<ListNode*> vctTemp;while (head != nullptr) {vctTemp.push_back(head);head = head->m_pNext;}if (vctTemp.size() > 0) {if (key <= vctTemp.size() && key >= 0 ) {cout << vctTemp[vctTemp.size() - key]->m_nKey << endl;//计算下标} else {cout << "error" << endl;}}else{cout<<"error<<endl;}
}
int main() {int number;while (cin >> number) {//循环用例输入ListNode* head = new ListNode();//头节点ListNode* next = new ListNode();bool bflag = true;while (number > 0) {int val;cin >> val;ListNode* nodeTemp = new ListNode();//构建每一个节点nodeTemp->m_nKey = val;nodeTemp->m_pNext = nullptr;if (bflag) {head = nodeTemp;//设置头节点next = head;bflag = false;} else {next->m_pNext = nodeTemp;//链接每一个节点next = next->m_pNext;}--number;}int key;cin >> key;getReversKeyNode(head, key);}}

运行结果:
在这里插入图片描述

http://www.mnyf.cn/news/41832.html

相关文章:

  • 模板网站视频软文台
  • 传奇免费网站建设seo短期课程
  • 钢材料 网站建设 中企动力百度电话号码
  • 建设党建网站联盟南京谷歌seo
  • 大量增加告权重网站友链回提升网站权重吗关键词搜索热度查询
  • 汕头网站设计哪家好网站推广专家十年乐云seo
  • 合肥企业建站系统模板2023年新闻热点事件摘抄
  • 用什么软件做网站最简单网页加速器
  • 做室内装修设计的网站什么是网络营销?
  • 网店设计师如何优化网络
  • 沈阳关键字优化广州网页seo排名
  • 重庆网站推广助理易搜搜索引擎
  • sftp更新WordPress昆明网络推广优化
  • 网站建设需求方案百度识图查图片
  • 电子采购系统湖北seo诊断
  • 昌吉住房和城乡建设局网站公司网络推广的作用
  • 手机wap网站制作站长工具关键词查询
  • 中堂镇做网站长春建站程序
  • 微平台推广seo词库排行
  • 惠州网站建设哪家便宜微信公众号推广方法有哪些
  • 网站robots怎么做自己搭建一个网站
  • 网店推广的渠道有哪些百度怎么做关键词优化
  • 做汽车租赁主要的网站网络营销成功案例ppt免费
  • 电脑上如何做网站宣传seo站长论坛
  • 卖水果做哪个网站好关键词优化举例
  • 泰州网站制作价格2023年9月疫情又开始了吗
  • ps个人网站怎么做重庆森林为什么叫这个名字
  • 概述政府网站建设工作的整体概况湖南百度seo
  • 锚文本外链网站seo网络推广优势
  • 淘宝做网站骗局日本shopify独立站