题意

如题所示

思路

  • 链表中的快慢指针的经典例题
  • 先让快的指针走 k 的距离,然后再让快慢指针一起走,他们两个指针之间永远隔着 k 的长度, 那么当快指针走到链表末尾的时候我们也就找到了倒数第 k 个节点

Java 代码

class Solution {
    public int kthToLast(ListNode head, int k) {
        if(head == null) return 0;
        ListNode fast = head, slow = head;
        while(k > 0) {
            fast = fast.next;
            k--;
        }
        while(fast != null) {
            fast = fast.next;
            slow = slow.next;
        }
        return slow.val;
    }
}

Python 代码

class Solution:
    def kthToLast(self, head: ListNode, k: int) -> int:
        if not head: return head
        fast, slow = head, head
        while k > 0:
            k -= 1
            fast = fast.next
        while fast:
            fast = fast.next
            slow = slow.next
        return slow.val

相关文章:

  • 2022-12-23
  • 2022-01-13
  • 2021-05-24
  • 2021-09-21
  • 2021-11-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-19
  • 2021-11-17
  • 2021-10-24
  • 2021-10-21
  • 2022-12-23
  • 2021-06-28
  • 2021-09-15
相关资源
相似解决方案