zoukankan      html  css  js  c++  java
  • 【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是否一致。这个方法实现起来也比较简单,这里就不提供代码啦!思路就可以啦

  • 相关阅读:
    基础
    条件语句/变量和基本数据类型
    编程语言介绍
    asp.net中log4net使用方法
    web布到服务器上出错
    《转》IEnumerable、IEnumerator两个接口的认识
    异步ADO.NET
    Session的使用
    AJAX参数及各种HTTP状态值
    简易的抓取别人网站内容
  • 原文地址:https://www.cnblogs.com/geeksongs/p/15203530.html
Copyright © 2011-2022 走看看