21.合并两个有序链表

一、思路

二、源码


一、思路

创建一个新链表

两个链表比较,小于等于取下来尾插

循环结束条件为任意一个链表为空

最后将之剩下的链表直接尾插

二、源码


struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
    if(list1 == NULL)
        return list2;
    if(list2 == NULL)
        return list1;
    struct ListNode *head = NULL,*tail = NULL;
    while(list1 && list2)
    {
        if(list1->val <= list2->val)
        {
            if(head == NULL)
            {
                head = tail = list1;
            }
            else
            {
                tail->next = list1;
                tail = tail->next;

            }
            list1 = list1->next;
        }
        else
        {
            if(head == NULL)
            {
                head = tail = list2;
            }
            else
            {
                tail->next = list2;
                tail = tail->next;
            }
            list2 = list2->next;
        }
    }
    if(list1)
        tail->next = list1;
    if(list2)
        tail->next = list2;
    return head;
}

相关推荐

  1. Leetcode21 合并有序

    2024-01-23 20:50:03       65 阅读
  2. Leetcode 21合并有序

    2024-01-23 20:50:03       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-23 20:50:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-23 20:50:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-23 20:50:03       82 阅读
  4. Python语言-面向对象

    2024-01-23 20:50:03       91 阅读

热门阅读

  1. Docker exec报 the input device is not a TTY错误

    2024-01-23 20:50:03       60 阅读
  2. stable diffusion和midjourney怎么选?

    2024-01-23 20:50:03       50 阅读
  3. git rebase/revert/reset 命令用法及场景

    2024-01-23 20:50:03       55 阅读
  4. python 编写dll给c++调用

    2024-01-23 20:50:03       53 阅读
  5. git总结

    2024-01-23 20:50:03       62 阅读
  6. Open CASCADE学习|Aspect_Handle.h头文件

    2024-01-23 20:50:03       56 阅读
  7. C++ Webserver从零开始:基础知识(五)——信号

    2024-01-23 20:50:03       49 阅读