题目描述

输入一个链表,输出该链表中倒数第k个结点。

解题思路

使用双指针,指针1先走k步,然后两个指针同时往后移动,指针1到达表尾时,指针2位倒数第k个结点。

  1. # class ListNode:
  2. # def __init__(self, x):
  3. # self.val = x
  4. # self.next = None
  5. class Solution:
  6. def FindKthToTail(self, head, k):
  7. # write code here
  8. if not head or k < 1:
  9. return None
  10. p1 = head
  11. p2 = head
  12. while k > 0:
  13. if not p1:
  14. return None
  15. p1 = p1.next
  16. k -= 1
  17. while p1:
  18. p2 = p2.next
  19. p1 = p1.next
  20. return p2