day 39
题目描述

思路
遍历链表,每一个点与值比较,比值小就继续,比值大就放到链表尾部即可
java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode partition(ListNode head, int x) {
if(head==null){
return null;
}
ListNode fakehead=new ListNode();
fakehead.next=head;
ListNode z=head;
while(z.next!=null){
z=z.next;
}
ListNode before=fakehead;
ListNode y=head;
ListNode end=z;
while(y!=end){
if(y.val>=x){
z.next=y;
before.next=y.next;
y=y.next;
z=z.next;
z.next=null;
}
else{
before=before.next;
y=y.next;
}
}
if(y.val>=x){
z.next=y;
before.next=y.next;
y=y.next;
z=z.next;
z.next=null;
}
return fakehead.next;
}
}