编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于等于x的结点之前
可以用两个链表,一个存储小于x的结点,一个存储大于等于x的结点,然后将两个链表合并到一起
import java.util.*;
public class partition {
public LinkedList Partition(LinkedList node, int x){
LinkedList beforStart = null;
LinkedList beforeEnd = null;
LinkedList afterStart = null;
LinkedList afterEnd = null;
while(node != null){
LinkedList next = node.next;
node.next = null;
if(node.data < x){
if(null == beforeStart){
beforeStart = node;
beforeEnd = beforeStart;
}
else {
beforeEnd.next = node;
beforeEnd = node;
}
}
else {
if (null == afterStart) {
afterStart = node;
afterEnd = afterStart;
}
else {
afterEnd.next = node;
afterEnd = node;
}
}
node = next;
}
if (null == beforeStart) return afterStart;
beforeEnd.next = afterStart;
return beforeStart;
}
}
这段代码有什么问题?