將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
從鍊錶1中取出第乙個元素,記為l1,與鍊錶2的第乙個元素(記為l2)進行對比,較小的值排在新的鍊錶的頭節點,如果 l1 >= l2,將l2作為新鍊錶的頭節點,否則將l1作為新鍊錶的頭節點,然後將已操作鍊錶的後續節點遞迴與另一鍊錶進行對比
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
if (l2==null)
listnode *head=new listnode(0);
//遞迴可以理解為之後的情況都處理好了 只需要解決好當前這步就行了
if (l1->val < l2->val)
else
return head;
}};
新建乙個帶有哨兵結點的鍊錶,依次比較兩個有序鍊錶的結點值,將較小值的結點插入到新鍊錶後面。直到其中乙個比較完畢,將另乙個鍊錶剩餘的結點全部放到新鍊錶最後面即可。最後,可以刪除哨兵結點,或者直接返回哨兵結點後第乙個結點指標
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution else
}//其中的乙個鍊錶比較完畢,將另外乙個鍊錶的剩餘節點直接插入到新建的鍊錶中
if(l1)else
temp=head;
head=head->next;
delete(temp); //刪除指標
temp=null;
return head;
}};
Leedcode 每日一題 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 迭代法 definition for singly linked list.struct listnode class solution el...
每日刷題 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 在演算法難度上,這道題可以歸為閱讀理解題。用兩個指標分別指向兩個鍊錶,然後挑選出乙個較小的節點列入所求鍊錶中,隨後將該鍊錶指標向後移動。需要注...
每日一題 合併兩個有序陣列
給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素。輸入...