前往此题

双指针法

在不知道链表长度的情况下,需要知道倒数第k个节点可以借助一个临时节点p,让他先走k步。然后headp一起往后移,当p走到末尾的时候,head指向的节点就是我们要求的节点。

代码

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def kthToLast(self, head: ListNode, k: int) -> int:
        p = head
        for i in range(0, k):
            p = p.next
        
        while p!=None:
            head = head.next
            p = p.next
        return head.val