美文网首页
链表2 相交链表

链表2 相交链表

作者: 是黄小胖呀 | 来源:发表于2020-07-23 00:34 被阅读0次

编写一个程序,找到两个单链表相交的起始节点。

如下面的两个链表:

在节点 c1 开始相交。

示例 1:

输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3

输出:Reference of the node with value = 8

输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。

示例 2:

输入:intersectVal = 2, listA = [0,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1

输出:Reference of the node with value = 2

输入解释:相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。在 A 中,相交节点前有 3 个节点;在 B 中,相交节点前有 1 个节点。

示例 3:

输入:intersectVal = 0, listA = [2,6,4], listB = [1,5], skipA = 3, skipB = 2

输出:null

输入解释:从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。由于这两个链表不相交,所以 intersectVal 必须为 0,而 skipA 和 skipB 可以是任意值。

解释:这两个链表不相交,因此返回 null。

注意:

如果两个链表没有交点,返回 null.

在返回结果后,两个链表仍须保持原有的结构。

可假定整个链表结构中没有循环。

程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。

代码思路:

长短链表拼接,合并后的数据相等时返回结果

注意某个链表为空,指向空指针;重新赋值后再指向另一个指针,有个指向空指针的过程!!!

代码如下:

class Solution:

    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:

        a=headA

        b=headB

        while a!=b:

            if a:

                a=a.next

            else:

                a=headB

            if b:

                b=b.next

            else:

                b=headA

        return b

相关文章

  • 链表2 相交链表

    编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:in...

  • 链表--相交链表

    目录[https://www.jianshu.com/p/85e18c21317a] 题号[https://lee...

  • 编程之美-判断两个链表是否相交 (涵其扩展问题)

    问题定义 两个单向链表的头指针,两个链表都可能带环1: 判断这两个链表是否相交2: 如果相交,给出他们相交的第一个...

  • LeetCode:相交链表

    相交链表 题目叙述: 编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表: 示例: 示例 1: 示例 2...

  • 链表相交的问题(java)

    判断两个无环链表是否相交首先我们要知道相交是什么概念两个链表相交.png现在大家都知道了,两个链表相交,则两个链表...

  • 【LeetCode】链表专题

    160.相交链表 返回两个链表相交的节点 19.删除链表的倒数第N个节点 返回链表的头结点。 21.合并两个有序链表

  • 链表

    1 合并两个链表 2 链表判环 并返回入环节点的值 3 两个无环单链表是否相交 4 合并两个有序链表 5 链表排序

  • 1.数据结构-链表问题

    链表相关问题 删除节点 链表去重 有环链表 反转链表 链表排序 链表相交 其他问题 面试题 02.03. 删除中间...

  • 链表小题目

    如何判断两条单向链表是否相交,以及相交节点 同时遍历两个链表,求出长度差,然后长的链表走完 N次以后,短链表再开始...

  • leetcode的题目160

    160. 相交链表 编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表: 在节点 c1 开始相交。...

网友评论

      本文标题:链表2 相交链表

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