輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。
# -*- coding:utf-8 -*-
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class solution:
# 返回合併後列表
#def merge(self, phead1, phead2):
# write code here
if(phead1 is none):
return phead2
if(phead2 is none):
return phead1
phead3 = none
if(phead1.val < phead2.val):
phead3 = phead1
phead3.next = self.merge(phead1.next , phead2)
else:
phead3 = phead2
phead3.next = self.merge(phead1 , phead2.next)
return phead3
合併兩個排序的鍊錶 17
輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的結點仍然是按照遞增排序的。要合併兩個遞增的鍊錶,首先找出兩個鍊錶的頭結點中較小的乙個就為合併後新鍊錶的頭結點,之後再依次將兩個鍊錶中的結點值進行相比較,依次將較小值在新鍊錶中進行尾插,直到其中乙個鍊錶遍歷完成,將剩餘鍊錶直接鏈在新鍊錶的尾部就可以了...
17 合併兩個排序的鍊錶 JAVA
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。解題思路 利用遞迴來完成,首先要解決好空鍊錶的情況,1.鍊錶1為空,直接返回鍊錶2。2.鍊錶2為空,直接返回鍊錶1.3.鍊錶1 2都為空則返回null。其次開始比較鍊錶1 2的頭結點的大小,建立乙個結點new...
合併 k 個排序鍊錶,返回合併後的排序鍊錶
為新節點開闢乙個空間 s data temp 將最小值賦給data if l null l s else r next s r s temp 100 if r r next null return l int panduan linklist linklist l,int k 用來判斷是否所有的鍊錶...