天天看点

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

分析

Java中虽没有指针,但Java对象中却有着指针的影子,同样可以利用指针的一些性质,这是因为java的基础类型存放在栈中,对象存放在堆中。这样就可以根据一个对象来改变另一个对象的值,所以我们需要两个链表,一个进行返回,一个进行操作。

代码

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode addList = new ListNode(0);
        ListNode temp = addList;
        while (true) {
            /**
             * 如果其中一个链表为空,则下面的值应该等于另外一个链表
             */
            if (l1 == null) {
                temp.next = l2;
                l2 = null;
                return addList.next;
            } else if (l2 == null) {
                temp.next = l1;
                l1 = null;
                return addList.next;
                /**
                 * 判断大小,然后赋值
                 */
            } else if (l1.val < l2.val) {
                temp.next = l1;
                temp = temp.next;
                l1 = l1.next;
            } else {
                temp.next = l2;
                temp = temp.next;
                l2 = l2.next;
            }
        }
    }
           

消耗

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

继续阅读