链表-返回两个无环链表的相交节点

//返回两个无环链表的相交节点
public class Node{
    public int value;
    public Node next;
    public Node(int data){
        this.value=data;
    }
}
public Node getIntersectNode(Node head1,Node head2){
    if(head1==null||head2==null){
        return null;
    }
    Node cur1=head1;
    Node cur2=head2;
    int n=0;
    while(cur1.next!=null){
        n++;
        cur1=cur1.next;
    }
    while(cur2.next!=null){
        n--;
        cur2=cur2.next;
    }
    while(cur1!=cur2){
        return null;
    }
    cur1=n>0?head1:head2;
    cur2=cur1==head1?head2:head1;
    n=Math.abs(n);
    while(n!=0){
        cur1=cur1.next;
        cur2=cur2.next;
    }
    return cur1;
}

猜你喜欢

转载自blog.csdn.net/weixin_42146769/article/details/88389135