首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
此岸性May
重庆工商大学派斯学院 算法工程师
发布于重庆
关注
已关注
取消关注
@此岸性May:
每日一题: 输出单链表倒数第K个结点值(法1)
题目 输出单链表 倒数第K个结点值【问题描述】输入一个单向链表,输出该链表中倒数第k个结点,链表的最后一个结点是倒数第1个节点。【输入形式】输入第一位为K值,其后接一串以空格分隔的整型值。【输出形式】输出为倒数第K个结点的值,若无,则输出Not Found【样例输入】3 13 45 54 32 1 4 98 2【样例输出】4【样例说明】K值为3,则输出链表倒数第3个结点的值,为4;数据输入间以空格隔开【评分标准】本题要综合输出正确性及使用的数据结构。需由输入数据构建单链表。不使用链表的将不得分。源代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct node* next;}SLinkNode;void InitList(SLinkNode*& L) { L = (SLinkNode*)malloc(sizeof(SLinkNode)); L->next = NULL;}void InsElem(SLinkNode* L, int n) { SLinkNode* p = L; SLinkNode* s = p->next; while (s != NULL) { p = p->next; s = s->next; } InitList(s); s->data = n; p->next = s;}int GetElem(SLinkNode* L, int i) { int j = 0; SLinkNode* p = L; if (i <= 0) return 0; while(p!=NULL && j<i) { j++; p = p->next; } if (p == NULL) return 0; else { printf("%d", p->data); return 1; }}int main(){ SLinkNode* L; InitList(L); int k, n, j; j = 0; scanf_s("%d", &k); while (getchar() != '\n') { scanf_s("%d", &n); InsElem(L, n); j++; } k = j - k + 1; if (!GetElem(L, k)) { printf("Not Found"); } return 0;}思路解析#define _CRT_SECURE_NO_WARNINGS/*这是一个预处理指令,用于禁用某些编译器的警告信息。具体来说,它禁用了使用不安全函数的警告信息。如果不加这个指令,当你使用一些被认为不安全的函数时,编译器会给出警告信息,但是加上这个指令后,编译器就不会再给出这些警告信息了。*/#include<stdio.h> //C语言的头文件#include<stdlib.h> //C++样式typedef struct node{ //单链表结点声明 int data; struct node* next;}SLinkNode;void InitList(SLinkNode*& L) { //初始化线性表 L = (SLinkNode*)malloc(sizeof(SLinkNode)); L->next = NULL; //为空表}void InsElem(SLinkNode* L, int n) { SLinkNode* p = L; SLinkNode* s = p->next; //设置两个指针 while (s != NULL) { p = p->next; s = s->next; } //两个指针前后遍历链表 InitList(s); //初始化链表 s->data = n; p->next = s;}int GetElem(SLinkNode* L, int i) { //查找第i个元素 int j = 0; //计数 SLinkNode* p = L; //设置指针 if (i <= 0) return 0; //需找元素不符合要求 while(p!=NULL && j<i) //链表不为空 { j++; p = p->next; } //遍历 if (p == NULL) //链表为空 return 0; else //不为空,则遍历输出值 { printf("%d", p->data); return 1; }}int main(){ SLinkNode* L; //结点声明 InitList(L); //初始化链表 int k, n, j; //记录 首位 输入的数据 计数 j = 0; //计数 scanf_s("%d", &k); //用户输入首个数据 while (getchar() != '\n') { //将其他数据一次插入链表 scanf_s("%d", &n); InsElem(L, n); j++; } k = j - k + 1; //依照原序计算出正序的逆序位数 if (!GetElem(L, k)) { printf("Not Found"); } return 0;}
点赞 0
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
不愿透露姓名的神秘牛友
昨天 11:31
服了,面试还能通知错人。。。
简直是二次伤害了
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
昨天 11:48
26届7月找实习感觉这辈子真是有了...
主包是26届,组里管的严,上半年没能去实习,也错过了找暑期实习。之前有过两端title查无此名的实习,主包于6月底开始找日常,每天勤勤恳恳的投简历,但除了微小厂没人理我,唯一理我的大厂是字节,在实习僧上秒标不合适主包不太考虑国央企和体制内,找不到实习主包秋招是不是完蛋了...
点赞
评论
收藏
分享
06-26 16:46
广东海洋大学 Java
牛友们为什么我的简历投出去看都没人看双飞java毕业真的只能送外卖了吗
程序员小白条:
找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞
评论
收藏
分享
05-19 19:15
已编辑
浪潮集团_后端开发(实习员工)
麻了
😥😥😥
牛客38347925...:
9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞
评论
收藏
分享
07-04 14:39
门头沟学院 机械结构工程师
实习时长是必须说准确时长吗?
测试糕手手:
社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
其实主包早就找到工作了,但还是每天都刷
1.4W
2
...
突然对上流社会祛魅了
8377
3
...
快star-x二面凉经
7508
4
...
恋爱四年没想到过自己会出轨
6121
5
...
小红书二面(第二天oc)
5270
6
...
没实习 == 秋招凉?
4734
7
...
记录一下0实习三天速通字节了....
3771
8
...
腾讯的面试,拷问的太全面了
3736
9
...
我寻思压根没这回事,怎么就求职者包装算造假了,怎么不说公司也包装?
3445
10
...
25届毕业现在在家呆了一个多月,没工作
3229
创作者周榜
更多
正在热议
更多
#
计算机有哪些岗位值得去?
#
9268次浏览
88人参与
#
电网笔面经互助
#
35937次浏览
348人参与
#
实习生的蛐蛐区
#
28282次浏览
216人参与
#
听劝,这个简历怎么改
#
177331次浏览
1150人参与
#
应届生,你找到工作了吗
#
15307次浏览
127人参与
#
你找工作的时候用AI吗?
#
10916次浏览
103人参与
#
说说你知道的学历厂
#
19909次浏览
120人参与
#
总结:哪家公司面试体验感最好
#
51454次浏览
367人参与
#
学历贬值真的很严重吗?
#
21644次浏览
161人参与
#
面试尴尬现场
#
15532次浏览
101人参与
#
入职第一天,你准备什么时候下班
#
62831次浏览
380人参与
#
大学生该如何认清当下的就业环境?
#
88650次浏览
567人参与
#
下班后的时间你怎么安排
#
4989次浏览
57人参与
#
打工人的工作餐日常
#
48563次浏览
362人参与
#
哪些公司校招卡第一学历
#
61776次浏览
234人参与
#
哪一瞬间觉得自己长大了
#
5172次浏览
85人参与
#
社会教会你的第一课
#
21587次浏览
272人参与
#
你认为小厂实习有用吗?
#
7906次浏览
79人参与
#
你觉得第一学历对求职有影响吗?
#
92854次浏览
668人参与
#
研究所笔面经互助
#
75363次浏览
470人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务