• 【leetcode】160: 相交链表


    题目如下:

    这个题目,一看可以把链表的nods全部拿到,放到set哈希表里面,也可以放在list里面,然后循环判断是否有两个地址相同的node,但是由于时间的限制只能在o(n)以内,因此我们可以采用哈希表,也就是python里面的set来做这道题,解答如下:

    # 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 headB == None or headA==None:
                return None
            ls_one=set()
            while headA:
                ls_one.add(headA)
                headA=headA.next
            while headB:
                if headB in ls_one:
                    return headB
                headB=headB.next
            
    
            return None

    方法二:

    提前遍历两个linked list,得到两个linked list分别的长度,然后将长的linked list前面先走过,直到两个linked list长度一样的时候,开始一一比对当前的node是否一致。这个方法实现起来也比较简单,这里就不提供代码啦!思路就可以啦

  • 相关阅读:
    腾讯云通信服务端返回签名
    synchronized同步语句块
    synchronized同步方法
    springjdbc的批量操作
    yield方法
    暂停线程
    【jdk源码学习】HashMap
    diamond types are not supported at this language level
    【java基础系列】一、常用命令行
    Socket通信综合示例
  • 原文地址:https://www.cnblogs.com/geeksongs/p/15203530.html
Copyright © 2020-2023  润新知