## Main.java
public class Main {
public static void main(String[] args) {
Node n1 = new Node(1);
Node n2 = new Node(5);
Node n3 = new Node(9);
Node n4 = new Node(3);
Node n5 = new Node(6);
n1.next = n2;
n2.next = n3;
n3.next = n4;
n4.next = n5;
Node result = cut(n1,6);
for (Node c = result; c != null; c = c.next) {
System.out.println(c);
}
}
public static Node cut(Node head,int x){
Node small=null;
Node big=null;
Node smalllast=null;
Node biglast=null;
for(Node cur=head;cur!=null;cur=cur.next){
if(cur.val<x){
if(small==null){
small=cur;
}
else{
smalllast.next=cur;
}
smalllast=cur;
}
else{
if(big==null){
big=cur;
}
else{
biglast.next=cur;
}
biglast=cur;
}
}
if(smalllast==null){
return big;
}
else{
smalllast.next=big;
}
if(biglast==null){
return small;
}
else{
biglast.next = null;
}
return small;
}
}
## Node.java
public class Node{
public int val;
public Node next;
public Node(int val){
this.val=val;
}
public String toString(){
return String.format("Node(%d)",val);
}
}
【Java】以给定x为基准分割链表,原顺序不变
最新推荐文章于 2020-08-10 22:54:45 发布