主函数:
Node node = new Node(1);
node.next = new Node(3);
node.next.next = new Node(4);
node.next.next.next = new Node(7);
Node node2 = new Node(2);
node2.next = new Node(5);
node2.next.next = new Node(6);
mergeNode(node, node2);
System.out.println("");
合并函数
public static Node mergeNode(Node node1, Node node2) {
if (node1 == null || node2 == null) {
return node1 == null ? node2 : node1;
}
Node head = node1.value < node2.value ? node1 : node2;
Node cur1 = head.next;
Node cur2 = head == node1 ? node2 : node1;
Node pre = head;
while (cur1 != null && cur2 != null) {
if (cur1.value <= cur2.value) {
pre.next = cur1;
cur1 = cur1.next;
} else {
pre.next = cur2;
cur2 = cur2.next;
}
pre = pre.next;
}
pre.next = cur1 != null ? cur1 : cur2;
return head;
}