美文网首页LeetCode每日一题
LeetCode每日一题:相交链表

LeetCode每日一题:相交链表

作者: Patarw | 来源:发表于2020-08-08 11:40 被阅读0次

首先介绍一下我想到的暴力解法把,代码是使用HashSet实现的,先把第一个链表中的数据都加入到HashSet中,然后再把第二个链表中的数据进行逐一比较,如果有重复的就返回,没有的话就返回null
时间复杂度 : O(m+n)
空间复杂度 : O(m)或 O(n)

  • 代码实现;
    public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
    if(headA == null || headB == null){
        return null;
    }
     HashSet<ListNode> map = new HashSet<>();
    while(headA != null){
        map.add(headA);
        headA = headA.next;
    }
    while(headB != null){
        if(map.contains(headB)){
            return headB;
        }else{
            headB = headB.next;
        }
    }
    return null;
}
}

第二种解法:双指针法
大体思路就是让他们走过的路程变成相等的,利用了遍历链表a+遍历链表b所需要走的路程是一样的,但是遍历a和b的顺序可以不一样,若相交,链表A: a+c, 链表B : b+c. a+c+b+c = b+c+a+c 。则会在公共处c起点相遇。若不相交,a +b = b+a 。因此相遇处是NULL。图解:

  • 代码实现:
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
if (headA == null || headB == null) return null;
ListNode pA = headA, pB = headB;
while (pA != pB) {
    pA = pA == null ? headB : pA.next;
    pB = pB == null ? headA : pB.next;
}
return pA;
}

题解下面的评论是真的妙啊,这年头算法题也能这么文艺吗

相关文章

  • LeetCode每日一题:相交链表

    首先介绍一下我想到的暴力解法把,代码是使用HashSet实现的,先把第一个链表中的数据都加入到HashSet中,然...

  • LeetCode 每日一题160: 相交链表

    题目 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入...

  • LeetCode:相交链表

    相交链表 题目叙述: 编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表: 示例: 示例 1: 示例 2...

  • 160. 相交链表

    160. 相交链表[https://leetcode.cn/problems/intersection-of-tw...

  • TOP 100 51 - 56

    160. 相交链表[https://leetcode-cn.com/problems/intersection-o...

  • 160. 相交链表

    160. 相交链表[https://leetcode-cn.com/problems/intersection-o...

  • LeetCode 156-160

    160. 相交链表[https://leetcode-cn.com/problems/intersection-o...

  • LeetCode | 链表相关题目

    LeetCode 160.相交链表 编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:示例在节点 c1...

  • leetcode_相交链表

    编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表: 在节点 c1 开始相交。 注意: 如果两个链...

  • 【Leetcode】 链表相交

    题目 刚开始时直接上暴力遍历过了题目,然后看了大佬的题解,记录下这个双指针的方法 解法:双指针交换 我们目标是找到...

网友评论

    本文标题:LeetCode每日一题:相交链表

    本文链接:https://www.haomeiwen.com/subject/mithdktx.html