求两个相交链表的交点

        inline int get_list_len(ListNode *root)
        {
            int len=0;
            while(root){
                root=root->next;
                ++len;
            }
            return len;
        }
        ListNode *fun(ListNode *root2,ListNode *root2)
        {
            if(!root1||!root2)
                return nullptr;
            int len1=get_list_len(root1);
            int len2=get_list_len(root2);
            int n=len2-len1;
            if(n<0){
                swap(root1,root2);
                n=-n;
            }
            while(n--)
                root1=root1->next;
            while(root1!=root2){
                root1=root1->next;
                root2=root2->next;
            }
            return root1;
        }

你可能感兴趣的:(求两个相交链表的交点)