Leetcode 面试题 02.02.返回倒数第 k 个节点
1 题目描述(Leetcode题目链接)
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
输入: 1->2->3->4->5 和 k = 2
输出: 4
说明:
给定的 k 保证是有效的。
2 题解
双指针,第一个先走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:
p, q = head, head
while k > 0:
p = p.next
k -= 1
while p:
p, q = p.next, q.next
return q.val