您的位置:首页 > 其它

LeetCode2.2.3(Partition List)

2015-08-29 09:37 405 查看
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.

这道题的思路比较独特,新建两个链表,一个用来搜集比基准元素小的数,另一个用来搜集大于或者等于基准元素的数,然后将这两个链表链接起来皆可以了

public static void solution_2_2_3(Node head,int x){
Node h1=null,h2=null,temp=head,p1=null,p2=null;
while(temp!=null){
if(temp.data<x){
if(h1==null){
h1=temp;
p1=temp;
}
else{
p1.next=temp;
p1=temp;
}
}
else{
if(h2==null){
h2=temp;
p2=temp;
}
else{
p2.next=temp;
p2=temp;
}
}
temp=temp.next;
}
p1.next=h2;
p2.next=null;
for(Node r=h1;r!=null;r=r.next){
System.out.print(r.data+" ");
}

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