力扣面试150题--分隔链表
day 39
题目描述
思路
遍历链表,每一个点与值比较,比值小就继续,比值大就放到链表尾部即可
/*** 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;}
}