欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode:求链表中倒数第k个节点(Python)

程序员文章站 2023-12-21 20:12:40
...

题目描述:
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。
解题思路:
**解法一:**先遍历统计链表长度,记为 n ;
设置一个指针走 (n-k)步,即可找到链表倒数第 k 个节点。
解法一代码:


if __name__=='__main__':
    Linklist=list(map(int,input().strip().split()));
    k=int(input())
    print(Linklist[len(Linklist)-k])

解法二:使用双指针
LeetCode:求链表中倒数第k个节点(Python)
解法二代码:

def getKth(arr,k):
    former=k
    latter=0
     #因为这里的本意是使用双指针,所有不能用数组的长度来终止循环,所以用了异常抛出
    while 1:
        former += 1
        latter += 1
        try:  
            arr[former]
        except IndexError:
            return arr[latter]

if __name__=='__main__':
    Linklist=list(map(int,input().strip().split()));
    k=int(input())
    print(getKth(Linklist,k))

相关标签: 笔面试试题

上一篇:

下一篇: