题目描述
知识点:链表
使用前后指针即可,前指针先走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 head == None or k <= 0:
return None
quick_pointer = head
slow_pointer = head
ans = []
for i in range(k - 1):
if quick_pointer.next:
quick_pointer = quick_pointer.next
else:
return None
while quick_pointer.next:
quick_pointer = quick_pointer.next
slow_pointer = slow_pointer.next
return slow_pointer
拓展:若要求中间节点,可设置快慢指针,快指针一次走两步,慢指针一次走一个,当快指针指向最后一个节点,慢指针指向中间节点。