【剑指Offer】链表中倒数第k个节点 解题报告(Python)

时间:2023-03-08 21:19:39

【剑指Offer】链表中倒数第k个节点 解题报告(Python)

标签(空格分隔): LeetCode


题目地址:https://www.nowcoder.com/ta/coding-interviews

题目描述:

输入一个链表,输出该链表中倒数第k个结点。

Ways

这个题的做法大家应该都知道了,就是使用两个指针,走在前面的指针比走在后面的指针优先k-1步,这样当走在前面的指针走到头的时候,走在后面的指针正好到了倒数第k个节点。

需要注意的是代码的鲁棒性。有以下三点:

  1. 头结点不存在
  2. k为0
  3. 链表长度小于k

都要有合理的解决方法。fangfa

# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None class Solution:
def FindKthToTail(self, head, k):
if not head or not k:
return None
left, right = head, head
for i in range(k - 1):
if not right.next:
return None
right = right.next
while right.next:
left = left.next
right = right.next
return left

Date

2018 年 3 月 11 日