天天看點

力扣劍指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.合并兩個排序的連結清單

繼續閱讀