题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路一
使用一个长度为k的尺子,pre先走k-1步,然后nex再开始走,当pre到达最后一个节点时,则nex所指向的就是倒是第k个结点
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# 使用一个长度为k的尺子,pre先走k-1步,然后nex再开始走,
# 当pre到达最后一个节点时,则nex所指向的就是倒是第k个结点
if head == None or k < 1:
return None
pre = nex = head
i = 0
while i < k-1:
i += 1
if pre.next == None:
return None
else:
pre = pre.next
while pre.next != None:
pre = pre.next
nex = nex.next
return nex
思路二
把链表的node存入list中,然后返回list中倒数第k个元素
class Solution:
def FindKthToTail(self, head, k):
# 把链表的node存入list中,然后返回list中倒数第k个元素
if k < 1:
return None
node = []
while head != None:
node.append(head)
head = head.next
if len(node) >= k:
return node[-k]
else:
return None