兩個鍊錶中的結點依次比較,小的放前面,然後指標不斷後移,直到至少有一方無結點(即null)為止。
題目要求
21. 合併兩個有序鍊錶
細節注意非遞迴實現:
遞迴演算法實現:/**
* definition for singly-linked list.
* public class listnode
* listnode(int val)
* listnode(int val, listnode next)
* }*/class
solution
if(l2 == null)
listnode node_head =
newlistnode(0
);//建立乙個虛擬頭結點,其值不重要,隨意
listnode cur = node_head;
while
(l1!=null && l2!=null)
else}if
(l1 == null)
else
if(l2 == null)
return node_head.next;
//輸出next,虛擬頭結點本身不需要
}}
public listnode mergetwolists(listnode l1, listnode l2)
if(l2 == null)
if(l1.val<=l2.val)else
}
LeetCode 第21題 合併兩個有序列表
leetcodeno.21合併兩個有序列表 題目 將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 分析 如果某乙個節點為空,乙個不為空 兩個均為空 圖示 下面的圖最後兩張中間跳過了一...
LeetCode 21合併兩個有序列表
將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4初始解法 這個問題轉換為經典的merge排序中的merge過程.merge排序中merge操作即是將兩個有序子陣列合併成乙個陣列,需要考慮比較過程...
leetcode第21題 合併兩個有序鍊錶
題目描述 將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 l1 1,2,4 l2 1,3,4 輸出 1,1,2,3,4,4 思路解析 遞迴法 根據以上規律考慮本題目 終止條件 當兩個鍊錶都為空時,表示我們對鍊錶已合併完成。如何遞迴 我們判斷...