描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入:
{1,3,5},{2,4,6}
复制返回值:
{1,2,3,4,5,6}
public class Jz16_Merge {
@Test
public void test() {
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(3);
ListNode listNode4 = new ListNode(4);
ListNode listNode5 = new ListNode(5);
ListNode listNode6 = new ListNode(6);
listNode1.next = listNode3;
listNode3.next = listNode5;
listNode2.next = listNode4;
listNode4.next = listNode6;
ListNode merge = Merge(listNode1, listNode2);
while (null != merge) {
System.out.print(merge.val + ",");
merge = merge.next;
}
}
public ListNode Merge(ListNode list1, ListNode list2) {
if (null == list1 && null == list2) {
return null;
}
if (null == list1) {
return list2;
} else if (null == list2) {
return list1;
}
if (list1.val <= list2.val) {
list1.next = Merge(list1.next,list2);
return list1;
} else {
list2.next =Merge(list1,list2.next);
return list2;
}
}
public class ListNode {
int val;
ListNode next = null;
public ListNode(int val) {
this.val = val;
}
}
}