【leetcode】Partition List
2015-05-15 20:27
260 查看
Partition List
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 1->4->3->2->5->2 and x = 3,
return 1->2->2->4->3->5.
思路:
用两个指针,分别指向比x小的数,和其他的数,然后再整体地连起来,就OK了。注意最后得时候,要指向NULL.
/** * 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) { if(head==NULL || head->next==NULL) return head; ListNode *p, *q,*temp=NULL,*record; ListNode *newnode=(struct ListNode *)malloc(sizeof(struct ListNode)); ListNode *oldnode=(struct ListNode *)malloc(sizeof(struct ListNode)); record=oldnode; q=newnode; p=head; while(p) { if(p->val >= x) { q->next=p; q=q->next; } else { record->next=p; record=record->next; } p=p->next; } q->next=NULL; record->next=NULL; record->next=newnode->next; return oldnode->next; } };
相关文章推荐
- 【LeetCode】Partition List 解题报告
- [LeetCode] Partition List
- [leetcode刷题系列]Partition List
- LeetCode----Partition List
- [Leetcode] Partition List (Java)
- LeetCode_Partition List
- LeetCode - Partition List
- [Leetcode] Partition list 划分链表
- [LeetCode] [Partition List 2012-04-30]
- [leetcode]Partition List
- LeetCode | Partition List
- [LeetCode]Partition List
- 57_leetcode_partition List
- leetcode 81: Partition List
- [C++]LeetCode: 19 Partition List
- LeetCode题解:Partition List
- Leetcode: Partition List
- LeetCode: Partition List
- 【leetcode】Partition List
- 【LeetCode】Partition List