leetcode JAVA Partition List 难度系数3 3.30

来源:互联网 发布:炫浪网络社区不能看了 编辑:程序博客网 时间:2024/05/21 09:58

Question:

Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

You should preserve the original relative order of the nodes in each of the two partitions.

For example,
Given 1->4->3->2->5->2 and x = 3,
return 1->2->2->4->3->5.

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode partition(ListNode head, int x) {        ListNode res = new ListNode(-1);        res.next = head;        ListNode pre = res;        ListNode post = new ListNode(-1);        ListNode pCur = post;        while(head!=null){        if(head.val<x){        pre.next=head;        pre=head;        }else {pCur.next = head;pCur=head;}        head = head.next;        }        pCur.next=null;        pre.next=post.next;        return res.next;    }}


0 0
原创粉丝点击