新建一个h结点作为新链表的头(哨兵结点),要new不要初始化为nullptr,来一个cur来在链表上移动。遍历两条链表,只要一条空就结束遍历,用cur的next指向未空的另一条链表即可。将比较小的那个结点直接拷贝构造,是深拷贝等于新建一个结点,而不是指向l1,不然会改变l1的指向。并将cur指向next,l1也往后走一步。l2同理。最后返回哨兵的next
/**
* 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* l1, ListNode* l2) {
if(l1 == nullptr) return l2;
if(l2 == nullptr) return l1;
//链表=双指针=空间鲁棒性
//两个指针分别在两点链表上走,找到比较小的就用其作为新结点
ListNode* h = new ListNode(0);
ListNode* cur = h;
while(l1 != nullptr && l2 !=nullptr){
if(l1->val <= l2->val){
cur->next = l1;
l1 = l1->next;
cur = cur->next;
}
else{
cur->next = l2;
l2 = l2->next;
cur = cur->next;
}
}
cur->next = l1==nullptr ? l2:l1;
return h->next;
}
};
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/J_avaSmallWhite/article/details/112760958
1.前言前几天写了篇关于代码生成器的文章,私下问我这个代码生成器是如何运作的,为什么要用到一些模板引擎,所以今天来说明下代码生成器的流程。2.代码生成器的使用...
Susie Zhang
阅读(819)
ERDAS中自定义坐标系的方法打开ERDAS目录(中的spheroid.tab)找到spheroid.tab文件选择用记事本打开输入想添加的坐标"Xian1980"{866378140...
冉桥兵
阅读(653)
重装系统安装vs2019运行项目报错经查,安装IE11即可解决此问题。参考资料:https://blog.csdn.net/lingxiu0613/article/det...
auccy
阅读(739)
Youareaproductmanagerandcurrentlyleadingateamtodevelopanewproduct.Unfortunately,thelatestversionofyo...
memcpy0
阅读(800)
floatf=3.4;是否正确?不正确。在java中,这里的3.4默认是双精度数。如果将双精度型(double)赋值给浮点型(float)属于下转型(down-ca...
A-蓝色弧线
阅读(142)
FPGA的学习主要分为以下几个方面:1、编程语言目前主流的编程语言主要是Verilog和VHDL,Verilog语法风格更像C语言,VHDL语法更为简单一点&...
zj907638274
阅读(739)
文章目录前言一、css处理步骤二、less文件处理步骤三、图片文件处理步骤总结今日推荐前言本篇我们一起来进行在webpack中如何处理css,用模块化的方式来添加样式,使用...
既白1997
阅读(219)
Java中的与、或、非运算与(&)运算符两个位都为1,则为1,否则为0;publicstaticvoidpositiveAnd(){//正数的原码、反码、补码...
java资深码农
阅读(683)
我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!在制作...
酒深夜巷
阅读(299)
Beam是基于MimbleWimble协议开发的,具有良好的隐私保护和可扩展性的数字货币。在发展的前12到18个月,为保证其抗ASIC特性,Beam大约每半年...
mazhqcs
阅读(318)