題意:要求以o(nlogn)的複雜度給乙個鍊錶排序
分析:昨天那道題的公升級版,這裡用的是歸併排序的思想,自頂向下的排序,從一開始完整的鍊錶不斷的每次分成兩段,分到每段只有乙個結點為止,再一點點的合併,要注意的是sortlist的函式是前閉後開的。
classsolution
listnode* sortlist(listnode* head,listnode*tail)
listnode* slow=head,*fast=head;
while(fast!=tail)
return
merge(sortlist(head,slow),sortlist(slow,tail));
}listnode* merge(listnode* head1,listnode*head2)
else
tmp=tmp->next;
}if(temp1!=nullptr)tmp->next=temp1;
else
if(temp2!=nullptr)tmp->next=temp2;
return dummyhead->next;
}};
leetcode題目。題號1
題目描述 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 解題思路 迴圈遍歷所有可能,每一次判斷是否與...
leetcode 鍊錶1
given a singly linked list l l 0 l1 l n 1 l n,reorder it to l 0 ln l1 l n 1 l 2 ln 2 you must do this in place without altering the nodes values.for e...
leetcode 括號生成 1
題目鏈結 給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 我的方法,dfs,然後再n 1層上 的前面和後面分別新增括號 另外,這個總數是第n個卡塔蘭數 dfrac binomn 11 n2n class solution el...