题目

image.png

思路

  • 快慢指针,先让快指针走k步,然后两个指针同步走,当快指针走到头时,慢指针就是链表倒数第k个节点。

    代码

    1. public ListNode getKthFromEnd(ListNode head, int k) {
    2. ListNode p1 = head, p2 = head;
    3. for (int i = 0; i < k; i++) {
    4. p1 = p1.next;
    5. }
    6. while (p1 != null) {
    7. p1 = p1.next;
    8. p2 = p2.next;
    9. }
    10. return p2;
    11. }
    链表中倒数第k个节点