[LeetCode OJ]- Merge 2 Sorted Lists

https://leetcode.com/problems/merge-two-sorted-lists/?tab=Description

題目要求是:給定兩個已排序的列表,返回一個把這兩個列表合并的新的列表。

解題思路:由于兩個列表都是已經排好序的,假設是按升序排列的,那么我們可以從頭開始取,比較這兩個列表l1,l2“最前面”的元素的大小,若l1的最前面的元素小于l2的,那么接下來,把l1的當前比較元素的后一個元素作為此鏈表”最前面”的元素,再次比較當前l(fā)1,l2的最前面的元素的大小,直到他們的最前面元素為空。當有一個鏈表的最前面元素為空時,這時要返回另一個鏈表的最前面元素。

可以看出,這是一個recursive的過程,需要不斷的重復遞歸比較的過程,代碼如下。

/**

* Definition for singly-linked list.

* public class ListNode {

*? ? int val;

*? ? ListNode next;

*? ? ListNode(int x) { val = x; }

* }

*/

public class Solution {

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

if(l1==null) return l2;

if(l2==null) return l1;

if(l1.val < l2.val)

{

l1.next = mergeTwoLists(l1.next , l2);

return l1;

}

else

{

l2.next = mergeTwoLists(l1, l2.next);

return l2;

}

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容