題目描述
實現一種算法,找出單向鏈表中倒數第 k 個節點。返回該節點的值。
算法思路
簡單粗暴的:
class Solution:
def kthToLast(self, head: ListNode, k: int) -> int:
ls=[]
while head:
ls.append(head.val)
head=head.next
return ls[-k]
快慢指針:
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
讓快指針先行K步,然後快慢指針同步,當快指針走到盡頭時,慢指針剛好是第K個節點。