您的位置:首页 > 其它

【2.2链表 】链表中倒数第k个结点

2018-03-08 10:27 295 查看

题目描述

输入一个链表,输出该链表中倒数第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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: