
解题思路:由于单链表只能从前往后遍历 因此不可能倒着找第k个节点
所以: 1.遍历链表求出,链表长度n;
2.倒数k=正数第n-k个节点
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
int n=0;
for(auto p=pListHead;p;p=p->next) //遍历链表 计算链表长度
{
n++;
}
if(k>n) return nullptr;
auto p=pListHead;
for(int i=0;i<n-k;i++) //寻找倒数k结点
{
p=p->next;
}
return p;
}
};
本文介绍了一种高效查找单链表倒数第K个节点的方法,通过两次遍历,先计算链表长度,再找到目标节点,适用于计算机科学与数据结构学习。
1662

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



