美文网首页剑指offer-python
面试15:倒转k链表

面试15:倒转k链表

作者: fighting_css | 来源:发表于2018-06-24 15:53 被阅读0次

【题目描述】输入一个链表,输出该链表中倒数第k个节点。
【思路】
采用两个指针,p1比p2快k步,当p1到达None时,p2刚好是倒数第k个节点。
1->2->3->4->5->None
注意边界:
当链表没有k个节点时,返回None
【代码】

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def FindKthToTail(self, head, k):
        # write code here
        if head==None:
            return head
        #考虑k小于等于0情况
        if k<=0:
            return 
        #指针p1先走k-1步,当p1为最后一个节点即倒数第一个节点时,p2为倒数第k个节点
        p1 = head
        p2 = head
        for i in range(1,k):
            p1 = p1.next
            #若链表没有k个节点,则返回None
            if p1==None:
                return 
        while p1.next!=None:
            p1 = p1.next
            p2 = p2.next
        return p2  

相关文章

  • 面试15:倒转k链表

    【题目描述】输入一个链表,输出该链表中倒数第k个节点。【思路】采用两个指针,p1比p2快k步,当p1到达None时...

  • 剑指offer目录

    目录 面试题3 在二维数组中查找 面试题15 链表中倒数第K个数 面试题16 反转链表 面试题44 扑克牌的顺子

  • 大厂面试系列(七):数据结构与算法等

    数据结构和算法 链表 链表,常见的面试题有写一个链表中删除一个节点的算法、单链表倒转、两个链表找相交的部分,这个一...

  • 剑指offer之(链表和栈)

    题目列表链表面试题06. 从尾到头打印链表面试题18. 删除链表的节点面试题22. 链表中倒数第k个节点面试题24...

  • 面试算法题:链表的倒转

    具体的代码调试和讲解,请参看视频:如何进入google,算法面试技能全面提升指南 在算法面试中,链表出现的频率相当...

  • 面试题22. 链表中倒数第k个节点

    面试题22. 链表中倒数第k个节点 题目描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本...

  • 链表中倒数第k个节点

    《剑指offer》面试题22:代码中倒数第k个节点 题目:输入一个单链表,输出该链表中倒数第k个结点。 思路:定义...

  • leecode刷题(27)-- 合并k个排序链表

    leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表。请...

  • 链表题目

    5. 从尾到头打印链表 思路:利用栈实现 15. 链表中倒数第k个结点 思路:两个指针,一个先走K步,之后两指针同...

  • 2018-08-15 LeetCode旋转链表反转链表

    反转链表原型 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。遍历链表统计链表长度...

网友评论

    本文标题:面试15:倒转k链表

    本文链接:https://www.haomeiwen.com/subject/xkfsyftx.html