LeetCode #21. 合併兩個有序鏈表 遞歸

https://leetcode-cn.com/problems/merge-two-sorted-lists/description/

合併兩條有序鏈表,形成一條新的有序鏈表:用遞歸實現

1.如果其中一條鏈表爲空,那麼只需要接上(返回)另一條鏈表即可

2.兩條鏈表都不爲空的話就比較兩條鏈當前位置的值大小。左鏈小,就用小值創建一個新結點到合併鏈上,合併鏈的下一個結點則遞歸調用函數合併除掉已添加的點後的兩條鏈表

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {

    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

        if(l1 == null)
            return l2;
        if(l2 == null)
            return l1;
        if(l1.val <= l2.val) {
            ListNode l3 = new ListNode(l1.val);
            l3.next = mergeTwoLists(l1.next,l2);
        } else {
            ListNode l3 = new ListNode(l2.val);
            l3.next = mergeTwoLists(l1,l2.next);
        }
        return l3;
    }
}

發佈了135 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章