因为没有系统地学过数据结构,所以需要多记录一些有关于数据结构的题目。
输入一个链表,输出该链表中倒数第k个结点。
链表的题目首先要考虑的就是快慢指针,显然这道题也可以用双指针做。
其次要考虑的就是各种边界问题。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
if k <= 0 or not head:
return None
left, right = head, head
for i in range(k-1):
if not right.next:
return None
right = right.next #右指针从第k-1个数开始,这样下面的循环结束时后面就剩下k-1个结点
while right.next:
left = left.next
right = right.next
return left
网友评论