Lintcode 鍊錶劃分

2021-08-21 02:35:33 字數 1135 閱讀 5016

給定乙個單鏈表和數值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 遍歷給定鍊錶,...