一、题目描述
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
限制:
0 <= 链表长度 <= 1000
二. 示例代码
public class MergeSortedNode {
public static void main(String[] args) {
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(4);
listNode1.next = listNode2;
listNode2.next = listNode3;
ListNode listNode4 = new ListNode(1);
ListNode listNode5 = new ListNode(3);
ListNode listNode6 = new ListNode(4);
listNode4.next = listNode5;
listNode5.next = listNode6;
ListNode result = mergeSortedNode(listNode1, listNode4);
System.out.println(result);
}
private static ListNode mergeSortedNode(ListNode listNode1, ListNode listNode4) {
if (listNode1 == null) {
return listNode4;
}
if (listNode4 == null) {
return listNode1;
}
ListNode result = new ListNode(-1);
ListNode dummy = result;
while (listNode1 != null && listNode4 != null) {
if (listNode1.val <= listNode4.val) {
dummy.next = new ListNode(listNode1.val);
listNode1 = listNode1.next;
} else {
dummy.next = new ListNode(listNode4.val);
listNode4 = listNode4.next;
}
dummy = dummy.next;
}
dummy.next = listNode1 != null ? listNode1 : listNode4;
return result.next;
}
}