链表中倒数第k个结点(python)

一,问题

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

二,分析

先举一个栗子:有这么一个链表:我们做两个指针,让他们构成一个尺子,所以一个叫尺子头,一个叫尺子尾

rulertou=head

rulerwei=head

 

 

让这个尺子的长度为k

for i in range(k):

    rulertou= rulertou.next

如果尺子长度k超过链表长度,就返回None,所以写完整就是:

for i in range(k):

    if rulertou==None:

        return None

    rulertou= rulertou.next

 

尺子做好了,现在就是要量了,我们让尺子一步步往后移,直到尺子头顶到None上

此时尺子尾指向的元素就是我们要找的

while rulertou!=None:

    rulertou=rulertou.next

    rulerwei=rulerwei.next

 

 

 

 

 

 

 

最后,return rulerwei

 

三,代码

 

posted @ 2020-06-23 18:37  董不耀  阅读(307)  评论(0编辑  收藏  举报