笨办法:先遍历链表得出链表长度然后就可以了
class Solution:
def kthToLast(self, head: ListNode, k: int) -> int:
cur = head
cnt = 1
while cur.next:
cnt += 1
cur = cur.next
cur = head
for i in range(cnt - k):
cur = cur.next
return cur.val
最佳解法:快慢指针
class Solution:
def kthToLast(self, head: ListNode, k: int) -> int:
fast = head
slow = head
while k > 0:
fast = fast.next
k -= 1
while fast != None:
fast = fast.next
slow = slow.next
return slow.val