java的leetcode(21)將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。
阿新 • • 發佈:2019-01-31
將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。
百度過一些解法後,希望記住的解法:遞迴。
因為是兩個排序好的連結串列,所以,每次ListNode temp都是兩者中較小的那個節點。
那麼可以理解為已經排好一個了,可以作為返回值。那麼只需要 排序 包涵這個節點的剩餘節點的連結串列以及另外一條連結串列即可。
接著就實現了遞迴
實現方法如下:
class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null) return l2; if(l2==null) return l1; ListNode temp; if(l1.val<l2.val){ temp = l1; temp.next= mergeTwoLists(l1.next,l2); }else{ temp = l2; temp.next= mergeTwoLists(l1,l2.next); } return temp; } }