描述:
输入一个链表,输出该链表中倒数第k个结点。
思路:
双指针,p1先走k步,然后同时走,p1到头时候返回p2
倒数第k个就是正数第n-k+1个,从第一个结点到第n-k+1个结点一共要走n-k步,从第k+1个结点到n+1个结点也是n-k步,从第一个结点到第k+1个结点,走k步
代码:
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# write code here
if not head:
return None
p1 = head
p2 = head
l = k
while l > 0:
try:
p1 = p1.next
l -= 1
except:
return None
while p1:
p1 = p1.next
p2 = p2.next
return p2
结果:
运行时间:26ms
占用内存:5848k