标签:des style blog http color io os ar for
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
.
分析:头结点的应用对本程序至关重要,降低了编程难度;
code:
/** * 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 lt(-1); ListNode rt(-1); ListNode *lt_next=< ListNode *rt_next=&rt; while(head) { if(head->val<x) { lt_next->next=head; lt_next=head; } else { rt_next->next=head; rt_next=head; } head=head->next; } lt_next->next=rt.next; rt_next->next=NULL; return lt.next; } };
标签:des style blog http color io os ar for
原文地址:http://www.cnblogs.com/chengyuz/p/4050053.html