086 Partition List 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
例如,
给定1->4->3->2->5->2 和 x = 3,
返回1->2->2->4->3->5.
详见:https://leetcode.com/problems/partition-list/description/
Java实现:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode partition(ListNode head, int x) { if(head==null||head.next==null){ return head; } ListNode small = new ListNode(-1); ListNode newSmall = small; ListNode big = new ListNode(-1); ListNode newBig = big; while(head!=null){ if(head.val<x){ small.next = head; small = small.next; }else{ big.next = head; big = big.next; } head = head.next; } big.next = null; small.next = newBig.next; return newSmall.next; } }
参考:https://www.cnblogs.com/springfor/p/3862392.html