需要注意的就是万一链表长度小于K
/**
* @Classname Solution
* @Description TODO
* @Date 2019/12/17 20:36
* @Created by Cheng
*/
public class Solution {
public ListNode FindKthToTail(ListNode head, int k) {
if(head == null || k<1)return null;
ListNode slow = head;
ListNode fast = head;
for (int i = 0; i < k; i++) {
if(fast == null)return null;
fast = fast.next;
}
while (fast != null) {
fast = fast.next;
slow = slow.next;
}
return slow;
}
}
本文介绍了一种寻找链表中倒数第K个节点的高效算法。通过使用两个指针,一个快指针先走K步,然后两个指针同步前进,当快指针到达链表尾部时,慢指针恰好指向倒数第K个节点。这种方法避免了两次遍历链表的复杂度。

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



