Week08 作业

用户头像
熊威
关注
发布于: 2020 年 07 月 29 日

有两个单向链表(链表长度分别为 m,n),这两个单向链表有可能在某个元素合并,如下图所示的这样,也可能不合并。现在给定两个链表的头指针,在不修改链表的情况下,如何快速地判断这两个链表是否合并?如果合并,找到合并的元素,也就是图中的 x 元素。



时间复杂度为O(m+n), m为第一个单链表的长度,n为第二个单链表的长度

# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None

class Solution:
def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
if not headA or not headB:
return
setA, setB = set(), set()
while headA is not None:
if headA not in setA:
setA.add(headA)
headA = headA.next
while headB is not None:
if headB in setA:
return headB
headB = headB.next
return



用户头像

熊威

关注

还未添加个人签名 2019.06.12 加入

还未添加个人简介

评论

发布
暂无评论
Week08作业