21 合併兩個有序鍊錶

2021-09-29 01:43:30 字數 659 閱讀 9610

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。 

示例:輸入:1->2->4, 1->3->4

輸出:1->1->2->3->4->4

整體思路類似歸併排序,選擇兩個鍊錶 l1,l2 中較小的元素加入新的鍊錶l3,最後若l1,l2中乙個遍歷完,另乙個鍊錶還有元素未遍歷,則將未遍歷的元素直接新增到l3的末尾。

/**

* definition for singly-linked list.

* public class listnode

* }*/class solution

if(l2==null)

listnode p,q,r,l3;

p = l1;

q = l2;

if(p.val>q.val)else

r = l3;

while(p!=null&&q!=null)else

r = r.next;

}if(p==null)

if(q==null)

return l3;

}}

可不使用額外的輔助鍊錶 l3,而是直接將合併的結果放入l1,由於鍊錶插入的時間複雜度為o(1),整體時間複雜度和空間複雜度都不會太高,並未嘗試 -.-!

21 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 原本想的是用19題的結構陣列那種方法來做 分別遍歷兩個鍊錶,建立結構儲存原始索引,val和指標,氣泡排序這個結構,更新索引,按照索引建立新的n...

21 合併兩個有序鍊錶

合併兩個有序鍊錶 將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4比較簡單,比較大小,重新排序即可。created by hints on 2019 1 9.include using name...

21 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4先確定合併鍊錶第乙個節點 在迴圈中同時遍歷兩個鍊錶,將後面其餘節點逐次比較,依大小次序連線到首節點之後,迴圈結束後可能有乙個鍊錶未遍歷完,將這個鍊錶剩...