/*
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 list1_l=null;
ListNode list2_l=null;
ListNode list2_h=null;
ListNode list1_h=null;
ListNode list2_s_h=null;
ListNode ln=list1;
while(list1!=null && list2!=null){
System.out.println("1:"+list1.val);
System.out.println("2"+list2.val);
while(list1!=null && list1.val <=list2.val){
//从list1中查找值小于list2中值的节点
list1_l=list1;
list1=list1.next;
}
list1_h=list1_l.next;//记录list1的下一次遍历的头结点
if(list1 ==null){
//list1中的值全部小于list2的值
list1_l.next=list2;
}else{
//找到当前list1中小于list2的最后一个节点
//开始寻找list2中大于所找list1节点的位置
list2_h=list2;//记录当前遍历下list2的头结点
while(list2!=null && list2.val <=list1.val){
list2_l=list2;
list2=list2.next;
}
if(list2 ==null ){
list2_l.next=list1_l.next;
list1_l.next=list2_h;
}else{
//记录list2的下一次遍历的头结点
list2_s_h= list2_l.next;
list2_l.next=list1_l.next;
list1_l.next=list2_h;
}
}
//更新新的头结点
list1=list1_h;
list2=list2_s_h;
}
return ln;
}
}
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 list1_l=null;
ListNode list2_l=null;
ListNode list2_h=null;
ListNode list1_h=null;
ListNode list2_s_h=null;
ListNode ln=list1;
while(list1!=null && list2!=null){
System.out.println("1:"+list1.val);
System.out.println("2"+list2.val);
while(list1!=null && list1.val <=list2.val){
//从list1中查找值小于list2中值的节点
list1_l=list1;
list1=list1.next;
}
list1_h=list1_l.next;//记录list1的下一次遍历的头结点
if(list1 ==null){
//list1中的值全部小于list2的值
list1_l.next=list2;
}else{
//找到当前list1中小于list2的最后一个节点
//开始寻找list2中大于所找list1节点的位置
list2_h=list2;//记录当前遍历下list2的头结点
while(list2!=null && list2.val <=list1.val){
list2_l=list2;
list2=list2.next;
}
if(list2 ==null ){
list2_l.next=list1_l.next;
list1_l.next=list2_h;
}else{
//记录list2的下一次遍历的头结点
list2_s_h= list2_l.next;
list2_l.next=list1_l.next;
list1_l.next=list2_h;
}
}
//更新新的头结点
list1=list1_h;
list2=list2_s_h;
}
return ln;
}
}