题目 - 链表中倒数第k个节点
难度:简单
分析
双指针法
- 先让快指针走 k 步
- 快慢指针同时走,每次走一步
- 当快指针到达链表尾端时,慢指针就指向当倒数第 k 个节点
代码
func getKthFromEnd(_ head: ListNode?, _ k: Int) -> ListNode? {
var fast = head, slow = head
var step = k
while step > 0 {
fast = fast!.next
step -= 1
}
while fast != nil {
fast = fast!.next
slow = slow!.next
}
return slow
}