题解 | #两个链表的第一个公共结点#

两个链表的第一个公共结点

https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46

思路:将一个链表的节点放进set集合,再去遍历另一个链表,查询有没有一样的节点即可。

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
import java.util.*;

public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        //有一个next指向同一个地址
        HashSet<ListNode> set = new HashSet<>();

        //将一条链表加入到set,然后去查有没有重复的
        while(pHead1 != null){
            set.add(pHead1);
            pHead1 = pHead1.next;
        }

        ListNode result = null;
        while(pHead2 != null){
             if(set.contains(pHead2)){
                result = pHead2;
                break;
             }
            
            pHead2 = pHead2.next;
        }

        return result;
    }
}

剑指offer刷题总结 文章被收录于专栏

本专栏是本人刷剑指offer的记录总结,也欢迎大家评论区留言讨论交流~

全部评论

相关推荐

昨天 22:08
佛山大学 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务