【剑指offer】面试题 22:链表中倒数第 K 个节点

来源:互联网 发布:电脑桌面上软件打不开 编辑:程序博客网 时间:2024/05/17 06:57

题目描述

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

时间限制:1秒 空间限制:32768K 热度指数:186080
本题知识点: 链表

思路


初始化两个指针,第一个指针指向第第 k-1 个节点,第二个节点指向第 0 个节点,

此时第一个指针比第二个指针相比,往后移动了 k 个节点;

之后,两个指针同时往后移动,当第一个指针指向链表的末尾的时候,

第二个指针所指向的节点就是链表的倒数第 K 个节点;





参考代码


# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    def FindKthToTail(self, head, k):        # write code here        if head == None or k <= 0:            return None                pAHead = head        pBehind = None                for i in range(k-1):            if pAHead.next != None:                pAHead = pAHead.next            else:                return None        pBehind = head        while pAHead.next != None:            pAHead = pAHead.next            pBehind = pBehind.next        return pBehind



阅读全文
0 0
原创粉丝点击