题目来源:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/、
大致题意:
给一个链表,返回它的倒数第 k 个节点
思路
快慢指针
- 初始时,快慢指针都指向头部
- 先让一个快指针先走 k 步
- 再让两个指针同步走,直至快指针走到尾部,此时慢指针的位置就是倒数第 k 个节点
代码:
public ListNode getKthFromEnd(ListNode head, int k) {
ListNode fast = head;
ListNode low = head;
// 快指针先走
while (fast != null && k > 0) {
fast = fast.next;
k--;
}
// 同步走
while (fast != null){
fast = fast.next;
low = low.next;
}
return low;
}
该博客主要介绍了如何利用快慢指针算法解决LeetCode中的一道题目——在链表中找到倒数第k个节点。通过设置两个指针,首先让快指针先行k步,然后两个指针同步移动,直到快指针到达链表尾部,此时慢指针所在位置即为所求。这种方法有效地避免了遍历整个链表,提高了效率。
246

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



