题目描述
输入一个链表,输出该链表中倒数第k个结点。
链表特点:
通过指针链接,查找不能通过下标查找,只能通过移动指针到对应位置查找。若有含标记链表个数的头结点,则可知道共有多少个节点;若无则智能通过移动指针并记录移动次数来获取节点个数。
因此,若想找到倒数第k个节点,需要知道一共有多少个n节点,再移动到整数第n-k个节点即可。
而python语言拥有列表这个数据结构,该结构特点是可通过下标直接移动到对应的元素位置。因此可将链表中的节点存储到列表结构里,直接可通过列表获取对应位置。
考虑边界条件:
若k的值大于节点个数或k的值为0或1时,返回空值。
class Solution:
def FindKthToTail(self, head, k):
# write code here
# return None if head == []
l = []
while head:
l.append(head)
head = head.next
return None if k > len(l) or k < 1 else l[-k]