將兩個排序鍊錶合併為乙個新的排序鍊錶
樣例給出 1
->
3->
8->
11->
15->
null,2
->
null, 返回 1
->
2->
3->
8->
11->
15->
null。
//definition for listnode.
public
class listnode
}
如果兩個鍊錶任一為空,則返回另乙個。如果都為空,直接返回空。
定義乙個新鍊錶,用於儲存合併後的鍊錶。
比較兩個鍊錶,把其中鍊錶值較小的存入新煉表中,鍊錶後移。
如果其中乙個鍊錶已經移到到鍊錶末尾,則將另乙個鍊錶剩餘的部分直接儲存到新鍊錶。
返回新鍊錶。
因為本題沒有時間與空間限制,所以遞迴與非遞迴都可以順利通過。
//遞迴
public listnode mergetwolists1(listnode l1, listnode l2) else
return node;
}
//非遞迴,占用記憶體小
public listnode mergetwolists(listnode l1, listnode l2) else
// 將指標移動到合併後鍊錶的結尾
node = node.next;
}// 如果第乙個鍊錶的元素未處理完,將其接到合併鍊錶的最後乙個結點之後
if (l1 != null)
// 如果第二個鍊錶的元素未處理完,將其接到合併鍊錶的最後乙個結點之後
if (l2 != null)
return newnode.next;
}
合併兩個排序鍊錶 LintCode
描述 將兩個排序鍊錶合併為乙個新的排序鍊錶。樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。思路 這道題其實跟上一道鍊錶的插入排序是親兄弟啊,在鍊錶的插入排序裡面我們自己建立了新的鍊錶dummy用來存放我們的排好序的鍊錶,這道題裡給出的兩條鍊錶都是...
LintCode 165合併兩個排序鍊錶
題目鏈結 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。空間複雜度o 1 時間複雜度o m n m n分別為鍊錶l1和鍊錶l2的長度 definition of listnode class listnode ...
Lintcode 165 合併兩個排序鍊錶
我的程式碼如下 def mergetwolists self,l1,l2 if l1 none return l2 if l2 none return l1 res listnode none while l1 and l2 if l1.val l2.val print l1.val res l1 ...