《剑指offer》链表中倒数第k个结点
2016-06-29 13:33
357 查看
一、题目描述
输入一个链表,输出该链表中倒数第k个结点。二、输入描述
一个链表三、输出描述
链表的倒数第k个结点四、牛客网提供的框架
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { } };
五、解题思路
建两个结点指针,一个指针为起始节点,另外一个位距离起始节点长度为k的末尾节点。从原链表的头开始不断向后寻找,当末尾节点找到最后时,起始节点所只想的是倒数第k个节点。寻找过程如下图:
六、代码
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(k <= 0) return NULL; ListNode *goalNode, *kNode; goalNode = pListHead; kNode = goalNode; for(int i = 1; i < k; i++) { if(kNode) kNode = kNode->next; if(!kNode) return NULL; } while(kNode && kNode->next) { kNode = kNode->next; goalNode = goalNode->next; } return goalNode; } };
相关文章推荐
- fullcalendar 日程插件demo使用
- Dojo与jQuery的选择~
- CSS图标ICO参考
- js回调函数,字符串,数组小析
- HTML中的长度值
- webpack打包第三方类库的正确姿势
- html笔记之在javascript中换行和直接在html中的不同
- JS上传图片预览及图片限制
- JavaScript 浏览器对象(一)
- CSS权威指南-处理空单元格
- three.js学习笔记 为模型增添物理效果
- nodejs npm常用命令
- jquery滚动条滚动的指定位置
- Flex 布局教程:语法篇
- jquery在选择元素的时候,可以写成var div=$("div")
- 【vscode】如何在vscode 中配置:TypeScript开发node环境
- 241. Different Ways to Add Parentheses
- 实验一:inode耗尽导致磁盘故障
- 85-002-12 基于frameSet搭建前端页面的后台
- html,css元素居中