剑指offer刷题之c++实现的求链表中倒数第k个值
2015-08-08 12:13
309 查看
#include "myHead.h" #include "allListNode.h" /* 返回链表中倒数第k个节点(k=1,2,。。。) 设总共n个节点。倒数第k个就是正数第n-k+1.如n=6,k=3,倒数第三个就是正数第4个。 为了减少两趟链表遍历(主要是减少一趟链表遍历求n),则牺牲空间拯救时间。 搞两个指针,一个向前走k-1步,当他准备走第k步的时候,另一个指针才开始走第一步。这样,前面指针和这个指针中间差值(k-1) */ ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode *pre; ListNode *p; int t = 0; if(pListHead == NULL || k==0) return NULL; pre = pListHead; p = pListHead; while((t++)<(k-1)){ if(p->next!=NULL){ p = p->next; } else return NULL; } while(p->next!=NULL){ p=p->next; pre = pre->next; } cout<<pre->val; return pre; } int main(){ ListNode *h ; h= createListNode(); FindKthToTail(h,0); return 1; }
相关文章推荐
- C++数组
- Leetcode -- Roman to Integer
- C++设计模式——单例模式
- 用最小最大的两个数交换首尾两数
- Caesar cipher
- c++ stl string char* 向 string 转换的问题
- C/C++程序基础
- C++静态库和动态库
- 分数相加减的代码(c++)
- c++自定义string类
- 牛客网(搜狗2015 C++工程师笔试题)
- [C++11 并发编程] 04 - 动态选择并发线程的数量
- C++连接mysql数据库的两种方法
- 【C++基础之一】C++ 虚函数表解析
- C/C++(链表应用)笔记——使用链表进行多项式的合并
- C++ 虚函数实现多态浅析
- C++面向对象--类
- C++中如何控制输出的格式
- 【C++智能指针 auto_ptr】
- C++总结