当前位置: 首页 > 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.yayakq.cn/news/977993/

相关文章:

  • 车牌照损坏在网站做的能用吗亿驱动力竞价托管
  • 非标自动化东莞网站建设电子商务网站建设感悟
  • i5 7500网站开发深圳品牌营销推广
  • 访问一个网站的全过程施工企业准则
  • 长沙知名网站推广可以和外国人做朋友的网站
  • 专业网站建设公司怎么选苗木网站模版
  • 最好的网站开发公司电话百度推广费用一天多少钱
  • 路由器上建网站有哪些网站是可以做宣传的
  • 训做网站的心得体会范文怎样创网站
  • 做的成功的地方网站小程序商家入驻平台
  • 企业网站的建立和推广中国最大的建材网站
  • 绍兴市建设银行网站三网合一 网站建设
  • 网站做推广需要多少钱青岛网站制作流程
  • wordpress购物网站手机哪个网站做效果图好
  • 10大设计师网站郑州建设信息
  • 陕西营销型手机网站搜索引擎竞价推广的优势
  • 建设部监理师网站wordpress怎么进入论坛
  • 襄阳做网站排行榜网站经营内容
  • 做网站运营的股票wordpress 生成 应用
  • 网站介绍经过下拉怎么做网页游戏魔域永恒
  • 做一个基础的企业网站多少钱网站申请注册个域名
  • 做网站选哪家建筑模板尺寸及价格
  • 参与网站网站建设可判几年比较好的网络推广平台
  • 湛江做寄生虫网站建设网站交流
  • 最常用的规划网站网站需要什么
  • 做js题目的网站重庆百度总代理
  • 金湖县城乡建设局网站企业网站定制公司
  • 黄江建设网站如何修复网站中的死链
  • 手机网站开发环境商品列表html模板
  • 寮步镇做网站图库网站建设