/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
class Solution {
public:
/**
*
* @param head ListNode类
* @param x int整型
* @return ListNode类
*/
ListNode* partition(ListNode* head, int x) {
if (!head) {
return head;
}
ListNode *min = new ListNode(0);
ListNode *max = new ListNode(0);
ListNode *ret = min, *maxHead = max;
while(head) {
if (head->val < x) {
min->next = new ListNode(head->val);
min = min->next;
} else {
max->next = new ListNode(head->val);
max = max->next;
}
head = head->next;
}
min->next = maxHead->next;
return ret->next;
// write code here
}
};