题目描述
输入两个链表,找出它们的第一个公共节点。
如下面的两个链表:
在节点 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; } }