CRR演算法筆記 合併兩個鍊錶,並排序

2021-09-12 02:21:49 字數 538 閱讀 5703

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

非遞迴寫法,新建鍊錶儲存結點,移動兩個鍊錶的指標。

這裡需要用兩個鍊錶,內容相同,只是指標指向不同。

指向新煉表頭的負責輸出,指向鍊錶尾部的附加新增新結點。

public class solution else

list1 = list1.next;

}else else

list2 = list2.next;}}

if (list1 == null)

if (list2 == null)

return result;

}}

遞迴寫法:

public class solution else

}}

其中:current = result = list1; 等於

result = list1;

current = result;

演算法 合併兩個排序鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。方法一 遞迴 public class listnode public class solution if list2 null 找到合併鍊錶的第乙個值,然後把其餘的加到它的後面 if list1.val l...

演算法 合併兩個有序鍊錶

有兩種方法,迭代和遞迴。迭代 不帶頭結點 node merge node head1 node head2 else 當前排序好的鍊錶的末尾節點 node pcurrent head while p1 null p2 null else 還有一方沒有遍歷完的情況 if p1 null pcurren...

演算法 合併兩個有序鍊錶

1.迭代,新建乙個哨兵節點,通過它的next指標指向串聯起兩個鍊錶 比較 l1 和 l2哪乙個比較小,讓哨兵節點的next指向比較小的節點 哨兵節點 l1 l2依次後推,直到又乙個鍊錶為空 如果 l1 為空,則哨兵節點指向l2 注意返回值為哨兵節點的next,因為哨兵節點的第乙個值是隨意給的 cla...