剑指offer--15.链表中倒数第k个节点
2016-07-09 17:59
435 查看
题目描述
输入一个链表,输出该链表中倒数第k个结点。
两种方式:
1、遍历两遍链表:倒数K==正数n-k+1。第一遍遍历求n,第二遍遍历n-k+1个节点即可。
2、遍历一遍链表:两个指针。第一个遍历k-1步后,第二个指针开始遍历。第一个到尾节点后,第二个为倒数第K个。
有三个点需要注意:
输入一个链表,输出该链表中倒数第k个结点。
两种方式:
1、遍历两遍链表:倒数K==正数n-k+1。第一遍遍历求n,第二遍遍历n-k+1个节点即可。
2、遍历一遍链表:两个指针。第一个遍历k-1步后,第二个指针开始遍历。第一个到尾节点后,第二个为倒数第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) { //输入pHeadList为NULL? //输入K==0? if (pListHead == NULL||k==0) return NULL; ListNode* p1 = pListHead; ListNode* p2 = pListHead; while (--k != 0) { //输入的K大于整个链表的长度 if(p1->next==NULL) return NULL; p1=p1->next; } while (p1->next != NULL) { p1 = p1->next; p2 = p2->next; } return p2; } };
相关文章推荐
- 使用slice方法进行js对象拷贝 得到新的对象 不再互相干扰 解决引用变量的指向问题
- 几个javascript技巧
- java:图像(BufferedImage)色彩空间转换(灰度)暨获取图像矩阵数据byte[](sRGB/gray)
- hdu 1015 Safecracker
- ReactiveCocoa的冷信号与热信号 探讨
- html5与html4的区别
- SDB-Schedule 简洁计划任务框架
- js中的字典
- [转] js == 与 === 的区别
- javascript中,对于this指向的浅见
- html语法
- React升级后带来的两个小问题及处理
- React Native 常见问题总结(android端)
- 使用jquery获取父元素或父节点的方法
- 剑指offer-机器人的运动范围
- sass基础
- JS经验
- HTML4和HTML5之间的主要不同点
- arcgis api for javascript 4.0 入门学习(1)创建一个2D地图
- JSP教程【2】JSP基本语法