| Title: |
Partition List |
| Pass Rate: |
27.5% |
| Difficulty: |
Medium |
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 .
The subject is to use a target to divide the list into two parts, less than target and a target greater than
Record with two linked lists, small and big make sure to place the. Next null, otherwise the memory will always overlap. The process of connecting is a pointer redirection process, so be sure to set NULL, or else the entire linked list is connected, the code is as follows:
1 /**2 * Definition for singly-linked list.3 * public class ListNode {4 * int val;5 * ListNode Next;6 * ListNode (int x) {7 * val = x;8 * next = null;9 * }Ten * } One */ A Public classSolution { - PublicListNode partition (ListNode head,intx) { -ListNode small=NewListNode (1); theListNode big=NewListNode (1); -ListNode s=small,b=Big; - if(head==NULL)returnhead; - while(head!=NULL){ + if(head.val<x) { -s.next=head; +Head=Head.next; As=S.next; ats.next=NULL; - } - Else{ -b.next=head; -Head=Head.next; -b=B.next; inb.next=NULL; - } to } +s.next=Big.next; - returnSmall.next; the } *}
Leetcode------Partition List