力扣:21. 合并两个有序链表

21. 合并两个有序链表

在这里插入图片描述

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{
    
    
    struct ListNode* shead=(struct ListNode*)malloc(sizeof(struct ListNode));
    shead->next=NULL;
    struct ListNode* head=shead;
    struct ListNode* cur=shead;
    while(list1!=NULL && list2!=NULL)
    {
    
    
        if(list1->val<=list2->val)
        {
    
    
            cur->next=list1;
            list1=list1->next;
            cur=cur->next;
            cur->next=NULL;
        } 
        else
        {
    
    
            cur->next=list2;
            list2=list2->next;
            cur=cur->next;
            cur->next=NULL;
        }
    }
    if(list1==NULL)
    {
    
    
        cur->next=list2;
    }
    else
    {
    
    
        cur->next=list1;
    }
    return head->next;
}

猜你喜欢

转载自blog.csdn.net/congfen214/article/details/129543699