【Java】以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于等于x的结点之前

来源:互联网 发布:centos 6.8 内核版本 编辑:程序博客网 时间:2024/05/03 10:56

编写代码,以给定值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;}}
这段代码有什么问题?

0 0
原创粉丝点击