中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
东丰县| 微山县| 永定县| 当雄县| 敦化市| 东辽县| 蓬安县| 长岭县| 定西市| 三亚市| 扬州市| 张北县| 靖安县| 吴旗县| 武功县| 高雄市| 泸溪县| 盘锦市| 房山区| 鄢陵县| 宁化县| 潞西市| 克拉玛依市| 伽师县| 西平县| 原阳县| 娄底市| 兰考县| 阿荣旗| 迭部县| 南皮县| 湄潭县| 青川县| 含山县| 临泽县| 淳安县| 乃东县| 花莲县| 正安县| 清流县| 阿克陶县|