給定乙個單鏈表和數值x,劃分鍊錶使得所有小於x的節點排在大於等於x的節點之前。你應該保留兩部分內煉表節點原有的相對順序。
解釋:
本道題目我的解法是先遍歷鍊錶,對於小於x的節點資料域壓入pre陣列中,其餘節點資料域壓入last陣列,然後將pre和last分別順序不變壓入result陣列中,最後再遍歷鍊錶,將鍊錶中的每乙個節點的資料域重新賦值為result陣列中的數值。
**:
class solution
vector
pre;
vector
last;
vector
result;
listnode *ptemp = head;
while(ptemp!=null)
else
ptemp = ptemp->next;
}result.insert(result.end(),pre.begin(),pre.end());
result.insert(result.end(),last.begin(),last.end());
listnode *temp = head;
int i = 0;
while(temp!=null)
return head;}};
執行結果:
補充:
vector insert() 函式有以下三種用法:
例如:
v.insert(v.begin(),8);//在最前面插入新元素。
v.insert(v.begin()+2,1);//在迭代器中第二個元素前插入新元素 。
v.insert(v.end(),3);//在向量末尾追加新元素。
v.insert(value.begin(), 4, 2);//在向量前面插入4個2。
result.insert(result.end(),pre.begin(),pre.end());//在向量result末尾插入pre向量區間內元素。
LintCode 鍊錶劃分
容易 鍊錶劃分 檢視執行結果 29 通過 給定乙個單鏈表和數值x,劃分鍊錶使得所有小於x的節點排在大於等於x的節點之前。你應該保留兩部分內煉表節點原有的相對順序。您在真實的面試中是否遇到過這個題?yes 樣例 給定鍊錶 1 4 3 2 5 2 null,並且 x 3 返回 1 2 2 4 3 5 n...
LintCode 鍊錶劃分
題目描述 給定乙個單鏈表和數值x,劃分鍊錶使得所有小於x的節點排在大於等於x的節點之前。你應該保留兩部分內煉表節點原有的相對順序。樣例 給定鍊錶 1 4 3 2 5 2 null,並且 x 3 返回 1 2 2 4 3 5 null 思路分析 題意搞懂了就很簡單了。ac definition of ...
鍊錶劃分 LintCode
描述 給定乙個單鏈表和數值x,劃分鍊錶使得所有小於x的節點排在大於等於x的節點之前。你應該保留兩部分內煉表節點原有的相對順序。樣例 給定鍊錶 1 4 3 2 5 2 null 並且 x 3 返回1 2 2 4 3 5 null 思路 這個題我們可以建立兩個新的鍊錶left和right 遍歷給定鍊錶,...