1. 程式人生 > 其它 >leetcode 相交連結串列

leetcode 相交連結串列

這是一道easy題,但是思路還是有點意思,需要判斷是否相交我們下意識的能想到我們需要用到雙指標,但如何讓兩個指標能夠在連結串列的相交位置上相遇?我們可以同時讓兩個指標兩個連結串列的頭結點開始遍歷,如果到達了連結串列的尾部則跳到另一個連結串列的頭結點,最終通過返回兩個連結串列相同到達的節點。(如果有相交就是相交節點,如果沒有相交節點則返回null)

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode p1=headA;
        ListNode p2=headB;
        
int flag1=0,flag2=0; while(p1!=p2) { p1=p1.next; if(p1==null&&flag1==0) { p1=headB; flag1=1; } p2=p2.next; if(p2==null&&flag2==0) { p2=headA; flag2
=1; } } return p1; }