[Leetcode] Partition List
2013-03-06 04:14
405 查看
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) return NULL; ListNode *smallVir = new ListNode(-1); ListNode *greatVir = new ListNode(-1); ListNode *smallPtr = smallVir; //Virtual head for smaller list ListNode *greatPtr = greatVir; ListNode *curPtr = head; while(curPtr!=NULL) { if(curPtr->val<x) { smallPtr->next = curPtr; smallPtr = curPtr; } else { greatPtr->next= curPtr; greatPtr = curPtr; } curPtr = curPtr->next; } greatPtr->next = NULL;//重要,新链表的末尾不一定是旧链表的末尾 smallPtr->next = (greatVir->next)?greatVir->next:NULL; return smallVir->next; } };
相关文章推荐
- [LeetCode] Partition List 解题报告
- [LeetCode] Partition List
- LeetCode题解-86-Partition List
- leetcode Partition List
- leetcode--Partition List
- leetcode:Partition List
- leetcode 086 Partition List
- LeetCode - Partition List
- Leetcode: Partition List
- [leetcode]Partition List
- 【LeetCode】Partition List
- 【LeetCode】Partition List ——链表排序问题
- 【Leetcode 86】 Partition List
- leetcode-Partition List
- 【Leetcode】Partition List
- [LeetCode]Partition List
- LeetCode-86-Partition List(链表)-Medium
- 【LeetCode】C# 86、Partition List
- leetcode - Partition List
- 【LeetCode】Partition List