给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。

    分析:这道题若是从头一个一个进行比对,那么复杂度必然会很高,所以不能这样,那么要想到,若是有交点,那么从交点向后肯定都是相同的,那么不如先把尾部对齐,然后再把长度调整一致,同步进行判断!

    参考代码:
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
    int Alength =0,Blength=0;
    ListNode A = headA , B = headB;
    while(A!=null){
    A=A.next;
    Alength++;
    }
    while(B!=null){
    B=B.next;
    Blength++;
    }
    A = headA ; B = headB;
    if(Alength>Blength){
    while(Alength!=Blength){
    A=A.next;
    Alength—;
    }
    }else if(Alength while(Alength!=Blength){
    B=B.next;
    Blength—;
    }
    }
    while(A!=null&&B!=null){
    if(A==B) return A;
    A=A.next;
    B=B.next;
    }
    return null;

    }