Merge 2 Sorted Lists

来源:互联网 发布:mac系统软件卸载 编辑:程序博客网 时间:2024/06/08 07:18


合并两个有序链表:
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;
    }


0 0
原创粉丝点击