《剑指offer》——寻找链表中倒数第k个结点
2015-12-29 19:07
274 查看
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL){} }; ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead == NULL || k <= 0)//链表为空或k值无意义 return NULL; ListNode *pFirst, *pSecond; pFirst = pListHead; pSecond = pListHead;//pListHead指向头结点 for(int i = 0; i < k - 1; i++)//pFirst先走k-1步 { //如果k的值大于链表的长度,pFrist会越过尾结点 if(pFirst -> next == NULL) return NULL; else pFirst = pFirst -> next; } //两个指针一起走,当pFirst指向尾结点时,pSecond指向倒数第k个结点 while(pFirst -> next != NULL) { pFirst = pFirst -> next; pSecond = pSecond -> next; } return pSecond; }
相关文章推荐
- 小议前端代码规范
- HTML5.Canvas绘图
- AngularJS基础——MVC、$scope的作用域、依赖注入的代码压缩以及run方法
- JavaScript基于面向对象之创建对象(一)
- css3笔记
- 常用JS
- JavaScript 中的面向对象的初步认识
- POJ 1274 The Perfect Stall(二分匹配-hungary)
- jQuery:常用方法一览
- JS面向对象的程序设计
- js实现,同一页面多个倒计时
- js动画实现透明度动画
- jquery删除表格行
- javascript中each()方法的简单实现
- js高级程序设计(四)变量、作用域和内存问题
- CSS3特效:案例&3D转换
- [CSS3 Practice] Simulate MacBook Dock
- angularjs指令中的compile与link函数详解
- 【笔记】jQuery中on()与delegate()方法给动态添加元素绑定事件
- ajax返回json格式时,中文乱码问题,以问号形式呈现