目录
[toc]
按大小合并
private ListNode merge(ListNode node1, ListNode node2) {
if (node1 == null) { return node2; }
if (node2 == null) { return node1; }
// 创建哨兵
ListNode sentinel = new ListNode(-1);
ListNode curr = sentinel;
// 合并过程
while (node1 != null && node2 != null) {
if (node1.val <= node2.val) {
curr.next = node1;
node1 = node1.next;
} else {
curr.next = node2;
node2 = node2.next;
}
curr = curr.next;
}
// 其中一个链表到达末尾
if (node1 != null) { curr.next = node1; }
else if (node2 != null) { curr.next = node2; }
return sentinel.next;
}
按顺序合并
一个 L1 一个 L2 按顺序合并
private void merge(ListNode l1, ListNode l2) {
ListNode l1_tmp;
ListNode l2_tmp;
while (l1 != null && l2 != null) {
l1_tmp = l1.next;
l2_tmp = l2.next;
l1.next = l2;
l1 = l1_tmp;
l2.next = l1;
l2 = l2_tmp;
}
}