链表的倒数第k个节点
传入一个Node指针,求出它指向的链表的倒数第k个节点,假如k超过了链表节点的个数,直接返回第一个节点
代码:
Node *find_buttom_kth(Node * ptr,int k){
if(ptr==NULL||k<=0)
return NULL;
Node * fast=ptr;
Node * slow=ptr;
while(fast!=NULL&&k--){
fast=fast->next;
}
if(fast==NULL){
return slow;
}
while(fast){
slow=slow->next;
fast=fast->next;
}
return slow;
}
本文介绍了一种高效查找链表中倒数第k个节点的算法。通过使用双指针技巧,首先快指针向前移动k步,然后慢指针开始跟随。当快指针到达链表尾部时,慢指针正好指向倒数第k个节点。如果k超过链表长度,则返回链表头节点。
1978

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



