合并两排序链表
題目描述
輸入兩個單調遞增的鏈表,輸出兩個鏈表合成后的鏈表,當然我們需要合成后的鏈表滿足單調不減規則。
如上圖所示,將鏈表1和鏈表2合并的結果就是鏈表3.即合并后的鏈表單調不減.
解題思路:
如圖,首先比較p1,p2兩個鏈頭節點,將數值小的節點作為新的鏈表的頭結點,然后將p1的第二個節點作為鏈頭與p2進行比較,較小的作為新鏈的第2個節點,如此反復,這種情況很容易想到使用遞歸方式來解.
示例代碼
static class ListNode {int val;ListNode next;public ListNode(int val) {this.val = val;}}public static ListNode merge(ListNode list1, ListNode list2) {if (list1 == null) {return list2;}if (list2 == null) {return list1;}ListNode head;if (list1.val < list2.val) {list1.next = merge(list1.next, list2);head = list1;} else {list2.next = merge(list1, list2.next);head = list2;}return head;}這里需要注意的是特殊值的處理,即當一個空鏈表與另一個非空鏈表進行合并時,只需要返回非空鏈表即可.
轉載于:https://www.cnblogs.com/wenjianes/p/9927748.html
總結
- 上一篇: 构件图和部署图
- 下一篇: 一个基于docker的bedrock m