写点什么

架构师系列 9: 找出单向链表合并节点

用户头像
桃花原记
关注
发布于: 2020 年 12 月 12 日
def check(head_a, head_b):    if head_a is None or head_b is None or head_a.next is None or head_b.next is None:        return None    # 空间间复杂度O(n)    hashset = set()    hashset.clear()    p = head_a.next    # 时间复杂度O(n)    while p.next is not None:        hashset.add(p.next)        p = p.next    print("link_a addr: {0}".format(hashset))    p = head_b.next    while p is not None:        if p.next in hashset:            print("link_b addr 相交节点地址: {0} 值:{1}".format(p.next, p.data))            return p.data  # 相交元素        print("link_b addr: {0}".format(p.next))        p = p.next    print("不相交")    return None
复制代码


使用 hashset 存储链表地址,判断两个链表地址是否有相同。

链表合并不是值相同而是地址相同才代表是同一个位置

用户头像

桃花原记

关注

还未添加个人签名 2018.11.24 加入

还未添加个人简介

评论

发布
暂无评论
架构师系列9: 找出单向链表合并节点