/以x为基准,将链表分成两部分,原来的数据顺序不变
public Node partition(int x){
if(head==null){
return null;
}
Node cur=this.head;
Node bs=null;
Node be=null;
Node as=null;
Node ae=null;
while(cur!=null){
if(cur.data>x){
if(bs==null){
bs=cur;
be=bs;
}else{
bs.next=cur;
bs=bs.next;
}
}else{
if(as==null){
as=cur;
ae=as;
}else{
ae.next=cur;
ae=ae.next;
}
}
cur=cur.next;
}
//bs是否为空
if(bs==null){
return as;
}
//bs不为空,进行拼接
be.next=as;
if(as!=null){
ae.next=null;
}
return bs;
}
以x为基准,将链表分成两部分,原来的数据顺序不变
最新推荐文章于 2021-11-08 12:59:08 发布