题目描述
输入一个链表,输出该链表中倒数第k个结点。
时间限制:1秒 空间限制:32768K 热度指数:186080
思路
初始化两个指针,第一个指针指向第第 k-1 个节点,第二个节点指向第 0 个节点,
此时第一个指针比第二个指针相比,往后移动了 k 个节点;
之后,两个指针同时往后移动,当第一个指针指向链表的末尾的时候,
第二个指针所指向的节点就是链表的倒数第 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 head == None or k <= 0:
return None
pAHead = head
pBehind = None
for i in range(k-1):
if pAHead.next != None:
pAHead = pAHead.next
else:
return None
pBehind = head
while pAHead.next != None:
pAHead = pAHead.next
pBehind = pBehind.next
return pBehind