【剑指offer】查找两个链表的公共节点

    xiaoxiao2026-09-10  3

    【解题思路】

     利用快慢指针  plong=pshort+dif_length

    public Node findFirstAncestor(Node pHead1,Node pHead2){ if(pHead1==null||pHead2==null) return null; int list2_size=0; int list1_size=0; Node p1=pHead1; Node p2=pHead2; while(p1!=null) { list1_size++; p1=p1.next; } while(p2!=null) { list2_size++; p2=p2.next; } Node longNode=pHead1; Node shortNode=pHead2; int longSize=list1_size; int shortSize=list2_size; if(list1_size<=list2_size) { longNode=pHead2; shortNode=pHead1; longSize=list2_size; shortSize=list1_size; } int count_dif=list1_size-list2_size; for(int i=0;i<count_dif;i++) longNode=longNode.next; for(int i=0;i<shortSize;i++){ if(longNode.value==shortNode.value) return longNode; longNode=longNode.next; shortNode=shortNode.next; } return longNode; }

    转载请注明原文地址: https://ju.6miu.com/read-1311927.html
    最新回复(0)