剑指offer 15.链表中倒数第k个节点
- 题目:https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
- 思路:
- 转换思路,倒数第k个节点,就是说正着数第nums-k个节点
- 启发或者坑
- 如果k大于链表的长度,返回NULL
- 代码
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode* t = pListHead; int num = 0; while(pListHead) { num++; pListHead = pListHead->next; } int times = num -k; while(times > 0) { t = t->next; times--; } if (times < 0) return NULL; return t; } };
本文详细解析了剑指Offer面试题集中的第15题——如何找到链表中倒数第k个节点的问题。通过转换思路,将问题转化为寻找正序下标为nums-k的节点,提供了简洁的C++代码实现,并讨论了当k超过链表长度时的处理方法。

184

被折叠的 条评论
为什么被折叠?



