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

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

如图所示两个链表,在节点c1处开始相交:

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

思路:长链表走到与短链表等长的位置,开始查找相交节点。

public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) return null;
        ListNode node1=headA;
        ListNode node2=headB;
        while (node1!=node2){
//            if (node1==null){
//                node1= headB;
//            }else {
//                node1 = node1.next;
//            }
//            if (node2==null){
//                node2=headA;
//            }else {
//                node2=node2.next;
//            }
            
            node1=(node1==null)?headB:node1.next;
            node2=(node2==null)?headA:node2.next;
        }
        return node1;
    }
}

 

 

 

 

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

上一篇:链表求交点


下一篇:lerna管理前端packages