Topic:
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greate R than or equal to x.
You should preserve the original relative order of the nodes in each of the.
For example,
Given 1->4->3->2->5->2
and x = 3,
Return 1->2->2->4->3->5
.
test instructions and analysis: given a linked list and a value x, moving a point in the list with values less than x to a point greater than or equal to X, you need to keep the relative position of the midpoint of the two parts unchanged, respectively. You can get a linked list that is greater than or equal to X, and a linked list that is less than x, and then combine the two linked lists to be the result.
Code:
/*** Definition for singly-linked list. * public class ListNode {* int val; * ListNode Next; * ListNode (int X) {val = x;}}*/ Public classSolution { PublicListNode partition (ListNode head,intx) {ListNode List1=NewListNode (0); ListNode List2=NewListNode (0); ListNode P1=List1; ListNode P2=List2; ListNode Start=Head; while(start!=NULL){ intValue=Start.val; if(value<x) {P1.next=start; P1=P1.next; //List1.next=null;}Else{P2.next=start; P2=P2.next; } Start=Start.next; } P2.next=NULL; P1.next=List2.next; returnList1.next; }}
[Leetcode] 86. Partition List Java