合并两个排序的链表_16
2023-04-18 16:10:23 时间
上代码:
public ListNode Merge(ListNode list1,ListNode list2) {
if (list1==null){
return list2;
}
if (list2==null){
return list1;
}
ListNode head=null;
ListNode curr=null;
while (list1!=null||list2!=null){
if (list1==null){
while (list2!=null){
curr.next=list2;
curr=list2;
list2=list2.next;
}
return head;
}
if (list2==null){
while (list1!=null){
curr.next=list1;
curr=list1;
list1=list1.next;
}
return head;
}
//1 2 8 9 10
//2 5 5 7 8
if (list1.val<= list2.val){
if (head==null){
head=list1;
curr=head;
}else {
curr.next=list1;
curr=list1;
}
list1=list1.next;
}else {
if (head==null){
head=list2;
curr=head;
}else {
curr.next=list2;
curr=list2;
}
list2=list2.next;
}
}
return head;
}
这是第一版本的;思路,如果遍历过程中有一个集合为空了,那么就把另外一个链表里的结点都添加到新链表里,实际上我们这个时候可以直接把另外一个不为空的链表直接加在我们新链表后面了
上代码:
public ListNode Merge(ListNode list1,ListNode list2) {
if (list1==null){
return list2;
}
if (list2==null){
return list1;
}
ListNode head=null;
ListNode curr=null;
while (list1!=null&&list2!=null){
if (list1.val<= list2.val){
if (head==null){
head=list1;
curr=head;
}else {
curr.next=list1;
curr=list1;
}
list1=list1.next;
}else {
if (head==null){
head=list2;
curr=head;
}else {
curr.next=list2;
curr=list2;
}
list2=list2.next;
}
}
if (list1==null){
curr.next=list2;
}else {
curr.next=list1;
}
return head;
}
相关文章
- php按值传递和引用传递的比较
- 如何停止spyder中运行的程序
- php文件用什么软件打开
- anaconda 安装好打不开怎么办
- python django框架中的单元测试如何执行?
- pycharm代码不高亮显示怎么办
- ps金属质感怎么做
- ps教程之怎么用ps抠图头发丝
- 怎么在jupyter安装包?
- pycharm怎么设置代码自动提示
- python3处理excel文本内容代码怎么写?
- 代理IP为什么使用socks5速度会快的多呢
- php文件怎么运行
- php中Larave框架中间件是什么?
- php中如何进行数组的降序或升序?
- 怎样暂停jupyter的运行?
- pycharm怎么返回(代码跳转回退)
- 雷军称小米成为电动汽车前五才能成功、微软被曝泄露2.4TB客户敏感数据、Meta已开发出无文字语言AI翻译系统 | T资讯
- 无线系统复杂性增加,AI 成克服挑战的关键
- Meta 开源首个 AI 语音翻译系统,闽南话和英语可以直接语音互译!