[leetcode]Partion List
955 ワード
LeetCodeのタップは、Java会runtime errorでc++で書きます。考え方は簡単で、書き方は答えを参考にしました。rootとpivotの2つのサブヘッダの結点を使って、NULLかどうかの判断を免除することができます。また、エンドノードのnextにNULLを設定します。
class Solution {
public:
ListNode *partition(ListNode *head, int x) {
ListNode* root = new ListNode(-1);
ListNode* pivot = new ListNode(-1);
ListNode* root_last = root;
ListNode* pivot_last = pivot;
ListNode* current = head;
while (current != NULL)
{
if (current->val < x)
{
root_last->next = current;
root_last = current;
}
else
{
pivot_last->next = current;
pivot_last = current;
}
current = current->next;
}
root_last->next = pivot->next;
pivot_last->next = NULL;
return root->next;
}
};