91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java怎么合并兩個有序鏈表

小億
115
2023-11-16 09:56:59
欄目: 編程語言

可以使用遞歸的方式來合并兩個有序鏈表。具體步驟如下:

  1. 判斷兩個鏈表中是否存在為空的情況,若其中一個鏈表為空,則直接返回另一個鏈表。
  2. 比較兩個鏈表頭結點的值,將值較小的頭結點作為合并后的鏈表的頭結點。
  3. 將較小頭結點的 next 指針指向遞歸調用合并后的鏈表。
  4. 返回合并后的鏈表的頭結點。

以下是一個示例的 Java 代碼實現:

class ListNode {
    int val;
    ListNode next;
    
    ListNode(int val) {
        this.val = val;
    }
}

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;
        }
    }
}

使用示例:

public class Main {
    public static void main(String[] args) {
        // 創建兩個有序鏈表
        ListNode l1 = new ListNode(1);
        l1.next = new ListNode(2);
        l1.next.next = new ListNode(4);
        
        ListNode l2 = new ListNode(1);
        l2.next = new ListNode(3);
        l2.next.next = new ListNode(4);
        
        // 合并兩個有序鏈表
        Solution solution = new Solution();
        ListNode mergedList = solution.mergeTwoLists(l1, l2);
        
        // 打印合并后的鏈表
        while (mergedList != null) {
            System.out.print(mergedList.val + " ");
            mergedList = mergedList.next;
        }
    }
}

輸出結果:

1 1 2 3 4 4

0
海原县| 湘潭市| 邹平县| 徐汇区| 石棉县| 安西县| 色达县| 巴东县| 会东县| 萝北县| 格尔木市| 瓮安县| 夏邑县| 正定县| 尼玛县| 绥滨县| 修文县| 景宁| 崇明县| 宁津县| 潼南县| 抚宁县| 东港市| 井冈山市| 普定县| 边坝县| 高雄县| 皋兰县| 明溪县| 乌拉特中旗| 平潭县| 永泰县| 河间市| 葵青区| 库尔勒市| 彭州市| 武平县| 耿马| 新安县| 航空| 龙陵县|