久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java怎么合并兩個有序鏈表

134次閱讀
沒有評論

共計 933 個字符,預計需要花費 3 分鐘才能閱讀完成。

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

  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

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-12發表,共計933字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 平南县| 黑水县| 浮梁县| 航空| 吉木乃县| 大埔区| 宝清县| 莲花县| 玉山县| 龙州县| 连平县| 临清市| 电白县| 高阳县| 波密县| 横峰县| 广南县| 蒙城县| 绥阳县| 盘锦市| 酒泉市| 海阳市| 门头沟区| 惠来县| 南华县| 盘锦市| 平顶山市| 田林县| 广南县| 周至县| 沽源县| 扎赉特旗| 乐平市| 平南县| 渑池县| 江陵县| 濮阳县| 通渭县| 永顺县| 台中县| 黄冈市|