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;
    }
}
全部评论

相关推荐

牛客963010790号:为什么还要收藏
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务