public class Solution25 {
public static void main(String[] args) {
Node node1 = new Node(1);
Node node2 = new Node(3);
Node node3 = new Node(5);
Node node4 = new Node(2);
Node node5 = new Node(4);
Node node6 = new Node(6);
node1.next = node2;
node2.next = node3;
node4.next = node5;
node5.next = node6;
Node res = mergeIteration(node1,node4);
System.out.println(res);
}
public static Node merge(Node list1, Node list2){
if (list1 == null){
return list2;
}
if (list2 == null){
return list1;
}
Node newNode = null;
if (list1.val < list2.val){
newNode = list1;
newNode.next = merge(list1.next,list2);
}else {
newNode = list2;
newNode.next = merge(list1, list2.next);
}
return newNode;
}
public static Node mergeIteration(Node list1, Node list2){
if (list1 == null){
return list2;
}
if (list2 == null){
return list1;
}
Node newNode = new Node(0);
Node cur = newNode;
while (list1 != null && list2 != null){
if (list1.val < list2.val){
cur.next = list1;
list1 = list1.next;
}else {
cur.next = list2;
list2 = list2.next;
}
cur = cur.next;
}
if (list1 == null){
cur.next = list2;
}else {
cur.next = list1;
}
return newNode.next;
}
}