Partition List
2013-05-30 15:37
239 查看
Given a linked list and a value x, partition it such that all nodes less than x come
before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given
3,
return
before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given
1->4->3->2->5->2and x =
3,
return
1->2->2->4->3->5.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *partition(ListNode *head, int x) { // Start typing your C/C++ solution below // DO NOT write int main() function if (head == NULL) { return head; } ListNode* less = head; ListNode* more = head; ListNode* node = head; if (node->val >= x) { while (node && node->val >= x) { more = node; node = node->next; } if (node) { less = node; more->next = less->next; less->next = head; head = less; node = more->next; } } else { while (node && node->val < x) { less = node; node = node->next; } more = node; if (more) { node = more->next; } } while (node) { if (node->val >= x) { node = node->next; more = more->next; } else { more->next = node->next; node->next = less->next; less->next = node; less = node; node = more->next; } } return head; } };
相关文章推荐
- leetcode 81: Partition List
- leetcode -- Partition List
- 【leetcode】Partition List
- LeetCode 之 Partition List
- Partition List
- leetcode第一刷_Partition List
- [leetcode]Partition List
- 【LeetCode】Partition List
- leetcode - Partition List
- LeetCode-Partition List-分割链表-链表操作
- Leetcode: Partition List
- [Leetcode]Partition List
- leetcode_86_Partition List
- 【leetcode】Partition List(middle)
- leetcode 日经贴,Cpp code -Partition List
- Partition List
- leetcode-Partition List
- leetcode 086 —— Partition List
- [LeetCode]Partition List
- Partition List