搜索内容

有一个问题?

如果您有任何疑问,可以在下面询问或输入您要寻找的!

剑指 Offer 25. 合并两个排序的链表

生成海报
小赞的冰苏打
小赞的冰苏打 2021-02-09 21:31
阅读需:0

在这里插入图片描述

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * }

 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if(l1 == NULL && l2 == NULL){
            return NULL;
        }
        if(l1 == NULL && l2 != NULL){
            return l2;
        }
        if(l1 != NULL && l2 == NULL){
            return l1;
        }
        ListNode*res = new ListNode(-1);
        ListNode* p = res;

        while(l1 != NULL && l2 != NULL){
            if(l1->val <= l2->val ){
                p->next = l1;
                l1 = l1->next;
                p = p->next;
            }else{
                p = p->next = l2;
                l2 = l2->next;
            }
        }
        if(l1){
            p = p->next = l1;//并不是多带带取值,只是把全部剩余的连接点放进后边
        }
        if(l2){
            p = p->next = l2;
        }
        return res->next;
    }
};
评论
  • 消灭零回复