第一次嘗試
將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。 鍊錶為無頭結點、單向、不迴圈。(由於涉及到結構體,所以寫不了完整的測試**,下面展示的**為leetcode中寫的**)(leetcode鏈結)
//遞迴的函式
struct listnode*
function
(struct listnode* l1,
struct listnode* l2)
if(l2 ==
null
)struct listnode* node =
null;if
(l1->val < l2->val)
else
struct listnode* ret =
function
(l1, l2)
;、 //頭插法插入先前保留的結點
node->next = ret;
return node;
}struct listnode*
mergetwolists
(struct listnode* l1,
struct listnode* l2)
if(l2 ==
null
)//遞迴法
struct listnode* ret =
function
(l1, l2)
;return ret;
//雙指標法
//設定虛頭結點
struct listnode list;
list.next =
null
;//設定更新變數結點
struct listnode* node =
&list;
while
(l1 !=
null
&&l2 !=
null
)else
node = node->next;
}//最後會有乙個先空,只需將另乙個非空的接到最後面即可
node->next = l1 ==
null
? l2 : l1;
return list.next;
}
發表於 2020-12-11 21:20 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先確定合併鍊錶第乙個節點 在迴圈中同時遍歷兩個鍊錶,將後面其餘節點逐次比較,依大小次序連線到首節點之後,迴圈結束後可能有乙個鍊錶未遍歷完,將這個鍊錶剩...