合并有序链表

发布时间 2023-09-19 15:32:27作者: 该说不唠

 

class Solution {
public:
    ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
        if(list1==NULL)
        {
            return list2;
        }

        if(list2==NULL)
        {
            return list1;
        }

        ListNode* node=new ListNode(0);
        ListNode* tmp=node;
        while(list1!=NULL && list2!=NULL)
        {
            if(list1->val >= list2->val)
            {
                tmp->next=list2;
                list2=list2->next;
            }
            else
            {
                tmp->next=list1;//tmp指向这个结点
                list1=list1->next;//指针指向下一个结点
            }
            tmp=tmp->next;//更新tmp
            if(list1==NULL)
            {
                tmp->next=list2;
                return node->next;
            }
            if(list2==NULL)
            {
                tmp->next=list1;
                return node->next;
            }
        }

        return node->next;
    }
};