您的位置:首页 > 编程语言 > Java开发

[Leetcode] Partition List (Java)

2014-01-16 15:53 330 查看
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
.

把小于x的放前面,大于等于x的放后面,不改变相对顺序

只需要一个小于x元素的指针pre与大于等于x的指针post,pCur即可

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: