剑指 Offer 25.合并两个排序的链表

题目

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

题目链接:合并两个排序的链表

示例1:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

代码实现

 //非递归方式,这里必须要有一个辅助节点 时间复杂度:O(n + m) 空间复杂度:O(1)
    public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode newCode = new ListNode(-1);
        ListNode cur = newCode;
        while (l1 != null && l2 != null) {
            if (l1.val < l2.val) {
                cur.next = l1;
                l1 = l1.next;
                cur = cur.next;
            } else {
                cur.next = l2;
                l2 = l2.next;
                cur = cur.next;
            }
        }

        cur.next= l1==null? l2:l1;
        return newCode.next;
    }

你可能感兴趣的:(剑指offer)