算法
前处理:
1.创建bean(class),定义值和下一个指向
2.创建合并的类和方法,输入两个链表
处理:
3.特殊情况:为空
4.创建新链表,head(为了最后返回)和cur(维护更新)
5.循环,终止条件:一个为空
6.比大小,小的挂上去,更新维护两个输入链表的指针
后处理:
7.一个为空了时的处理:全接上,返回head。
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 head =null;
ListNode cur=head;
while(list1!=null&&list2!=null){
if(list1.val<=list2.val){
//head=cur =list1;
if(head == null){
head=cur=list1;
}else{
cur.next =list1;
cur =cur.next;
}
list1 =list1.next;
}else{
if(head==null){
head= cur = list2;
}else{
cur.next=list2;
cur=cur.next;
}
list2=list2.next;
}
}
if(list1!=null&&list2==null){
cur.next=list1;
}
if(list2!=null&&list1==null){
cur.next=list2;
}
return head;
}
}