AcWing 66. 两个链表的第一个公共结点-java

AcWing 66. 两个链表的第一个公共结点

原题链接

输入两个链表,找出它们的第一个公共结点。

当不存在公共节点时,返回空节点。

数据范围
链表长度 [1,2000]。

代码案例:
在这里插入图片描述

题解

类似追及相遇问题
在这里插入图片描述

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
class Solution {
    public ListNode findFirstCommonNode(ListNode headA, ListNode headB) {
        ListNode p1 = headA ;
        ListNode p2 = headB;
        while(p1 != p2){
            if(p1 != null) p1 = p1.next;
            else p1 = headB;
            if(p2 != null) p2 = p2.next;
             else p2 = headA;
        }
        return p1 ;
        
    }
}
posted @ 2022-10-11 20:07  依嘫  阅读(19)  评论(0)    收藏  举报