2021/2/16 剑指 Offer 52. 两个链表的第一个公共节点

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

http://www.nowcoder.com/questionTerminal/6ab1d9a29e88450685099d45c9e31e46

题目描述

输入两个链表,找出它们的第一个公共节点。
如下面的两个链表:
图片说明
在节点 c1 开始相交。

解题思路

两个链表互相加上对方的长度,使它们的长度一致,用两个指针去分别检查两个链表,最终会找到公共节点。

Java代码实现

public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        if (pHead1 == null || pHead2 == null) return null; 
        ListNode ptr1 = pHead1;
        ListNode ptr2 = pHead2;
        while (ptr1 != ptr2) {
            ptr1 = ptr1 != null ? ptr1.next : pHead2;
            ptr2 = ptr2 != null ? ptr2.next : pHead1;
        }
        return ptr1;
    }
}
全部评论

相关推荐

头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务