/*
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* slow=pListHead;
ListNode* fast=pListHead;
if(pListHead==NULL)
return NULL
//先让快指针向前走K次
while(k)
{
//这里可以判断K的合法性,比如链表只有4个节点,K=5的话进入循环fast已经为空就没意义了
if(fast==NULL)
return NULL;
fast=fast->next;
k--;
}
//两个同时开始走fast为空停止
//slow就是对应的节点
while(fast)
{
slow=slow->next;
fast=fast->next;
}
return slow;
}
};
剑指offer: 链表中倒数第K个节点
最新推荐文章于 2024-11-08 11:30:25 发布