Leetcode-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 shoshould preserve the original relative order of the nodes in each of the two partitions.
For example,
Given1->4->3->2->5->2And x = 3,
Return1->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) {ListNode * newnode1 = new ListNode (-1 ); listNode * newnode2 = new ListNode (-1); ListNode * smallr = newnode1; ListNode * large = newnode2; ListNode * cur = head; while (cur! = NULL) {if (cur-> val
Next = cur; smallr = smallr-> next;} else {large-> next = cur; large = large-> next;} cur = cur-> next ;} large-> next = NULL; // deal with the tail node to prevent smallr loops> next = newnode2-> next; return newnode1-> next ;}};