16-合并两个排序的链表
1. 题目描述
2. 题解
-------------------------------------------------------【2021-08-07】更新------------------------------------------------
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
//边界值判断
if(list1==null)
return list2;
if(list2==null)
return list1;
//均非空情况下
ListNode res;
if(list1.val<=list2.val)
{
res=new ListNode(list1.val);
list1=list1.next;
}
else
{
res=new ListNode(list2.val);
list2=list2.next;
}
ListNode tmp=res;//保存头节点
while((list1!=null)&&(list2!=null))
{
if(list1.val<=list2.val)
{
tmp.next=new ListNode(list1.val);
tmp=tmp.next;
list1=list1.next;
}
else
{
tmp.next=new ListNode(list2.val);
tmp=tmp.next;
list2=list2.next;
}
}
while(list1!=null)
{
tmp.next=new ListNode(list1.val);
tmp=tmp.next;
list1=list1.next;
}
while(list2!=null)
{
tmp.next=new ListNode(list2.val);
tmp=tmp.next;
list2=list2.next;
}
return res;
}
}

查看15道真题和解析