📅  最后修改于: 2023-12-03 15:06:08.735000             🧑  作者: Mango
| | 第 36 题是一道与链表相关的算法题目。给定一个链表,需要找到该链表的倒数第 k 个节点,并返回该节点。此题需要对链表有一定的了解和掌握。
给定一个链表,找到该链表的倒数第 k 个节点,并返回该节点。
示例:
输入: 1->2->3->4->5 和 k = 2
输出: 4
说明:
此题可以使用双指针法来解决。我们定义两个指针,一个快指针 f,一个慢指针 s,让 f 先走 k 步,这样,s 和 f 之间就会有 k 个距离,当 f 指向链表尾部的 null 节点时,s 指向的节点就是倒数第 k 个节点。
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def getKthFromEnd(self, head: ListNode, k: int) -> ListNode:
f = s = head
for _ in range(k):
f = f.next
while f:
f = f.next
s = s.next
return s
此题中使用了双指针法来解决问题,时间复杂度为 O(n)。