合并两个有序链表:
P1 1-3-5-7-9
P2 2-4-6-8-10
首先选取P1.head 和P2.head 中较小的作为头结点。假设是P1.
那么Head的next节点应该是P1.next 和 p2 中较小的节点。即P1以P1.next 为头结点继续迭代。
代码(递归)
public static ListNode mergeLists(ListNode r1, ListNode r2) {
if (r1 == null) {
return r2;
}
if (r2 == null) {
return r1;
}
ListNode phead = null;
if (r1.val < r2.val) {
phead = r1;
phead.next = mergeLists(r1.next, r2);
} else {
phead = r2;
phead.next = mergeLists(r1, r2.next);
}
return phead;
}