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

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

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

import java.util.*; 
import java.util.HashMap;
/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        HashMap<ListNode,Integer> ans = new HashMap<>();
        ListNode temp1 = pHead1;
        while(temp1 != null){ // 先把链表 1 遍历一遍,用哈希保存
            ans.put(temp1,temp1.val);
            temp1 = temp1.next; 
        }
        ListNode temp2 = pHead2;
        while(temp2 != null){
            if(ans.containsKey(temp2)){ // 遍历链表 2 的时候,比较链表 2 的节点是否在哈希中出现,出现则返回当前节点
                return temp2;
            }
            temp2 = temp2.next;
        }
        return null; // 如果跑出循环,说明没有相同节点,则返回 null
    }
}

全部评论

相关推荐

合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。 个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。 投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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