首页 > 编程语言 >9.25算法

9.25算法

时间:2023-09-25 11:14:15浏览次数:40  
标签:dummy ListNode 9.25 list1 next 链表 算法 list2

#include <bits/stdc++.h> using namespace std; 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) {} }; ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {     ListNode dummy_node(0);     ListNode *dummy = &dummy_node;     while(list1 != nullptr && list2 != nullptr){         if(list1->val < list2->val){             dummy->next = list1;             list1 = list1->next;         }         else{             dummy->next = list2;             list2 = list2->next;         }                 dummy = dummy->next;     }     while(list1 != nullptr){         dummy->next = list1;         list1 = list1->next;         dummy = dummy->next;     }     while(list2 != nullptr){         dummy->next = list2;         list2 = list2->next;         dummy = dummy->next;     }     return (&dummy_node)->next; } int main() {     auto a1 = ListNode(1);     auto a2 = ListNode(2);     auto a3 = ListNode(3);     auto a4 = ListNode(4);     auto a5 = ListNode(5);     a1.next = &a2;     a2.next = &a3;
    a4.next = &a5;     mergeTwoLists(&a1,&a4);     return 0; }   概述   数组     字符串     链表 删除链表中的节点 删除链表的倒数第N个节点 反转链表 合并两个有序链表 回文链表 环形链表   树     排序和搜索     动态规划     设计问题     数学     其他  

合并两个有序链表

   

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

 

示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

输入:l1 = [], l2 = []
输出:[]

示例 3:

输入:l1 = [], l2 = [0]
输出:[0]

 

提示:

  • 两个链表的节点数目范围是 [0, 50]
  • -100 <= Node.val <= 100
  • l1 和 l2 均按 非递减顺序 排列
 

标签:dummy,ListNode,9.25,list1,next,链表,算法,list2
From: https://www.cnblogs.com/minipython-wldx/p/17727469.html

相关文章

  • 轻松掌握冒泡排序算法,值得收藏
    冒泡排序(BubbleSort)是一种简单的排序算法,其基本思想是多次遍历待排序的数组,每次比较相邻的两个元素,如果它们的顺序不正确就交换它们,直到整个数组有序为止。冒泡排序的基本步骤如下:从数组的第一个元素开始,比较相邻的两个元素,如果它们的顺序不正确就交换它们。重复步骤1,直到遍历......
  • 本地测试Spark的逻辑回归算法
    本地小数据量测试了一下Spark的LogisticRegressionWithSGD算法,效果不尽如人意。    数据样例如下,竖杠前的0,1代表两种类型,后面逗号隔开的是两个特征,两个特征只要有一个大于等于0.6就会被分为1这一类,否则就是0。1|0.3,0.60|0.2,0.11|0.5,0.61|0.8,0.30|0.4,0.30|0.3,0.......
  • 简单而经典:Java中的冒泡排序算法详解
    当谈到简单的排序算法时,冒泡排序(BubbleSort)通常是其中之一。虽然它不是最高效的排序算法之一,但它的简单性和易于理解使它成为学习排序算法的良好起点。在本文中,我们将详细介绍Java中的冒泡排序。冒泡排序的基本原理冒泡排序(BubbleSort)是一种简单的排序算法,它通过多次遍历待排序的......
  • 【算法】归并排序算法
    归并排序归并排序的思想归并排序运用了典型的分治策略,是一种稳定的排序算法,其时间复杂度为\(O(nlogn)\),空间复杂度为\(O(n)\)。分治的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。......
  • R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化|附代码数据
    原文链接:http://tecdat.cn/?p=19889原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于Metropolis-Hastings采样的研究报告,包括一些图形和统计输出。如果您可以写出模型的似然函数,则 Metropolis-Hastings算法可以负责其余部分(即MCMC)。我写了r代码来简化对任意模型的后......
  • 基于方向编码的模板匹配算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本MATLAB2022a 3.算法理论概述       模板匹配是一种常见的计算机视觉方法,用于在一幅图像中寻找指定的模板。它在目标检测、图像识别、物体跟踪等领域中有广泛的应用。基于方向编码的模板匹配算法是一种改进的模板......
  • 【算法】循环不变式
    循环不变式一、数学归纳法因为循环不变式的定义与数学归纳法类似,所以我们先来看看数学归纳法。我们首先从高中开始回忆起,有关于数列的数学归纳法。一般的,证明一个与正整数\(n\)有关的命题,可以分为以下两个步骤[1]:1.归纳奠基:证明当\(n=n_0(n_0\inN^*)\)时,命题成立。2......
  • 排序算法
    排序算法哪些是稳定的排序算法,哪些是不稳定的稳定的:直接插入排序:最坏情况是逆序,时间复杂度是O(N^2^),最好情况是插入的都是顺序,时间复杂度O(N),空间复杂度O(1)冒泡排序:时间复杂度O(N^2^),空间复杂度O(1)计数排序:时间复杂度O(N+Range),空间复杂度O(range)不稳定:希尔排序:时间复杂......
  • 最近公共祖先 Tarjan算法
    P3379【模板】最近公共祖先(LCA)利用并查集点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+10;vector<int>g[N];vector<pair<int,int>>query[N];intans[N],vis[N];intf[N];intfind(intx){ returnf[x]==x?x:f[x]......
  • 实现一致性哈希算法
    背景一致性哈希主要用于分布式系统解决数据存储与访问的负载问题,极大的提高了可用性与扩展性。分布式系统往往是把数据分布到不同的节点,这些节点可以动态的加入或离开集群,这样就需要考虑一些问题,如果按照传统的hash算法进行数据分布,动态扩缩节点就需要对数据进行rehash,数据量大或......