leetcode 21 合并两个有序链表

简介: leetcode 21 合并两个有序链表

合并两个有序链表


cdf15cfe483f4c6c86632870db8ee81f.png

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
        ListNode *head = new ListNode;
        ListNode *tmp = head;
        while(list1 != nullptr || list2 != nullptr)
        {
            if((list1 != nullptr && list2 != nullptr && list1->val <= list2->val)
                ||(list1 != nullptr && list2 == nullptr))
            {
                tmp->next = list1;
                tmp = tmp->next;
                list1 = list1->next;
            }
            if((list1 != nullptr && list2 != nullptr && list1->val > list2->val)
                ||(list1 == nullptr && list2 != nullptr))
            {
                tmp->next = list2;
                tmp = tmp->next;
                list2 = list2->next;
            }
        }
        return head->next;
    }
};



相关文章
|
10天前
|
索引
【力扣刷题】两数求和、移动零、相交链表、反转链表
【力扣刷题】两数求和、移动零、相交链表、反转链表
18 2
【力扣刷题】两数求和、移动零、相交链表、反转链表
|
1天前
|
算法 Java C语言
【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)
【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)
5 1
|
9天前
题目----力扣--回文链表
题目----力扣--回文链表
18 0
|
9天前
题目----力扣--合并两个有序链表
题目----力扣--合并两个有序链表
13 0
|
9天前
题目----力扣--反转链表
题目----力扣--反转链表
17 0
|
9天前
题目----力扣--链表的中间结点
题目----力扣--链表的中间结点
7 0
|
9天前
题目----力扣--移除链表元素
题目----力扣--移除链表元素
15 1
|
10天前
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点.
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点
20 1
|
10天前
|
索引
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
17 0
|
10天前
|
存储 算法 索引
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
22 1