将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
public static LinkedNode orderListMerge(LinkedNode node1, LinkedNode node2) {
if (node1 == null) {
return node2;
}
if (node2 == null) {
return node1;
}
//递归获取下一个结点
LinkedNode node;
if (node1.item <= node2.item) {
node = new LinkedNode(node1.item);
node.next = orderListMerge(node1.next, node2);
} else {
node = new LinkedNode(node2.item);
node.next = orderListMerge(node1, node2.next);
}
return node;
}
private static class LinkedNode {
private int item;
private LinkedNode next;
public LinkedNode() {
}
public LinkedNode(int item) {
this.item = item;
}
public LinkedNode(int item, LinkedNode next) {
this.item = item;
this.next = next;
}
}