[LeetCode] Partition List
2014-08-13 21:28
423 查看
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
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) { if(head == NULL) return head; ListNode *p = head; ListNode *lessHead = NULL,*greaterHead =NULL,*pLess=NULL,*pGreater=NULL; while(p){ if(p->val < x ){ if(lessHead == NULL){ lessHead = p; pLess = p; }else{ pLess->next = p; pLess = pLess->next; } }else{ if(greaterHead == NULL){ greaterHead = p ; pGreater = p; }else{ pGreater->next = p; pGreater = pGreater->next; } } p = p->next; }//end while if(pGreater!=NULL) pGreater->next = NULL; if(pLess !=NULL){ pLess->next = greaterHead; return lessHead; }else{ return greaterHead; } }//end func };
相关文章推荐
- Leetcode_86_Partition List
- Leetcode:Partition List
- leetcode笔记:Partition List
- leetcode86 Partition List
- leetcode-Partition List
- LeetCode-86-Partition List 链表
- leetcode_86_Partition List
- LeetCode_Partition List
- leetcode 86:Partition List
- LeetCode86 Partition List
- [leetcode 86] Partition List
- LeetCode刷题笔录Partition List
- LeetCode 86 Partition List
- leetcode-Partition List-86
- 【LeetCode-面试算法经典-Java实现】【086-Partition List(将单链表进行分区)】
- leetcode: Partition List
- [Leetcode] #86 Partition List
- 【LeetCode】Partition List
- LeetCode 86 Partition List (链表)
- LeetCode:Partition List