public class Solution {
public ListNode FindKthToTail (ListNode pHead, int k) {
//先判断当前节点是否为空
if(pHead == null){
return null;
}
//定义两个快慢指针
ListNode one = pHead;
ListNode two = pHead;
//循环 k 次
for(int i = 0; i < k; i++){
//如果为空则链表没有k的长度
if(one == null){
return null;
}else{
one = one.next; //否则则去下一个节点
}
}
//让两个指针都走
//当快指针为空时,返回慢指针(链表长度为n,快指针走k则剩下n-k,当慢指针走n-k步,剩下的就是k)
while(one != null){
one = one.next;
two = two.next;
}
return two;
}
}
力扣算法15——JZ22 链表中倒数最后k个结点 (双指针)
最新推荐文章于 2024-08-16 21:41:25 发布