【leetcode】160: 相交链表
2023-09-11 14:21:08 时间
题目如下:
这个题目,一看可以把链表的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是否一致。这个方法实现起来也比较简单,这里就不提供代码啦!思路就可以啦
相关文章
- Java实现 LeetCode 823 带因子的二叉树(DP)
- Java实现 LeetCode 813 最大平均值和的分组 (DFS+DP记忆化搜索)
- Java实现 LeetCode 912 排序数组(用数组去代替排序O(N))
- Java实现 LeetCode 329 矩阵中的最长递增路径
- Java实现 LeetCode 142 环形链表 II(二)
- Java实现 LeetCode 147 对链表进行插入排序
- Java实现 LeetCode 132 分割回文串 II(二)
- Java实现 LeetCode 114 二叉树展开为链表
- Java实现 LeetCode 61 旋转链表
- Java实现 LeetCode 25 K个一组翻转链表
- 【链表】leetcode 19. 删除链表的倒数第 N 个结点【中等】
- 【数组&双指针】leetcode 234. 回文链表【简单】
- LeetCode(121):买卖股票的最佳时机
- LeetCode(45): 跳跃游戏 II
- 160. 相交链表 ——【Leetcode每日一题】
- 462. 最小操作次数使数组元素相等 II——【Leetcode每日一题】
- 【LeetCode 17】电话号码的字母组合
- LeetCode 141. 环形链表
- LeetCode 160. 相交链表
- 【LeetCode】221.最大正方形
- 【LeetCode】876.链表的中间节点
- 【20】有效的括号 【LeetCode】