/**
* Created by buer on 2018/12/16.
* 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
*
* 递归解法:要有basecase 结束条件
*/
public class Solution {
/**
* 牛客有内置,下面内部类要去掉
*/
public static class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
@Override
public String toString() {
return "ListNode{" +
"val=" + val +
", next=" + next +
'}';
}
}
public static ListNode Merge(ListNode list1,ListNode list2) {
ListNode listNode = null;
if(list1==null)
return list2;
else if(list2==null)
return list1;
// System.out.println(list1.val);
if (list1.val < list2.val){
listNode = list1;
listNode.next = Merge(list1.next, list2);
}
else {
listNode = list2;
listNode.next = Merge(list1, list2.next);
}
// }
return listNode;
}
public static void main(String[] args) {
ListNode listNode1 = new ListNode(1);
listNode1.next = new ListNode(3);
listNode1.next.next = new ListNode(5);
// System.out.println(listNode1.next.val);
// while (listNode1!=null){
// System.out.println(listNode1.val);
// listNode1 = listNode1.next;
// }
ListNode listNode2 = new ListNode(2);
listNode2.next = new ListNode(4);
listNode2.next.next = new ListNode(6);
// System.out.println(listNode2.toString());
System.out.println(Merge(listNode1, listNode2));
}
}