题目
实现一种算法,找出单向链表中倒数第k个节点。返回该节点的值。
思路
双指针。
快指针先走k步,然后快慢指针一起走,当快指针走到链表末端,慢指针所指向的位置就是倒数第k个节点。
# 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:
if head is None: return
slow, fast = head, head
for _ in range(k):
fast = fast.next
while fast is not None:
slow = slow.next
fast = fast.next
return slow.val