剑指offer 链表中倒数第k个结点 @python
题目描述
输入一个链表,输出该链表中倒数第k个结点。
Solution
设置两个指正 fast,slow , fast 先走 k−1 步,当 fast 到达链尾时, slow 指向的正好时第 k 个结点。
Notes: 注意代码的鲁棒性,当输入空指针的处理,以及当
# -*- coding: utf-8 -*-
"""
Created on Thu Mar 22 20:36:04 2018
@author: Saul
"""
# -*- 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
fast = slow = head
if head is None:
return
if k == 0:
return
for i in range(k-1):
if fast.next is None:
return
else:
fast = fast.next
while fast.next:
fast = fast.next
slow = slow.next
return slow