面试题15:链表中倒数第k个结点
2015-09-23 13:49
218 查看
题目描述
输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。题目分析
剑指Offer(纪念版)P107代码实现
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead == NULL || k == 0) return NULL; ListNode *pAhead = pListHead; ListNode *pBehind = NULL; for(unsigned int i = 0; i < k - 1; ++ i) { if(pAhead->m_pNext != NULL) pAhead = pAhead->m_pNext; else { return NULL; } } pBehind = pListHead; while(pAhead->m_pNext != NULL) { pAhead = pAhead->m_pNext; pBehind = pBehind->m_pNext; } return pBehind; }
相关题目
1. 求链表的中间结点
2. 判断一个单向链表是否形成了环形结构
相关文章推荐
- 面试答疑
- 如何成为程序员高手(转)
- 面试心得与总结---BAT、网易、蘑菇街
- 程序员迷茫的感情生活
- MySQL DBA 面试全揭秘
- 面试心得与总结---BAT、网易、蘑菇街
- ArrowDownloadButton 分享
- ColoringLoading 分享
- 程序员 为什么千万不要重写代码
- 最老程序员创业开发实训12---Android---在MVC架构下Activity设计及实现
- 13 种激励程序员的方法
- 排序算法 面试 JAVA
- 黑马程序员——Java语言基础:面向对象、封装(构造函数、设计模式)
- 程序员 为什么千万不要重写代码
- 13 种激励程序员的方法
- 黑马程序员---java基础--数组
- Java常见面试题
- 程序员经典面试题之——数组指针与指针数组
- PHP面试总结
- 面试之数组&字符串