/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
//存放合并后链表的头信息;
ListNode head = new ListNode(0);
ListNode newHead = head;
//比较两个链表的值
//将比较的两个值小的一个赋值movnode.next
//复制给movnode.next 的原因是 要满足单调不减规则
//两个链表都没走完的情况进行比较
while(list1!=null&&list2!=null){
if(list1.val>list2.val){
newHead.next=list2;
list2 = list2.next;
}else {
newHead.next=list1;
list1=list1.next;
}
// 每添加一个新元素,链表必须往后移动一次。
newHead=newHead.next;
}
//两条链表中有一条链表走完了,判断是那条链表走完了,
//将没走完的那条链表,直接补到排完序的那条新链表后面。
if(list1==null){
movnode.next=list2;
}
if(list2==null){
movnode.next=list2;
}
//返回合并完成新链表的头节点。
return head.next;
}
}