题目来源: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;
}