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

原创 2015年07月08日 20:42:32

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

9.2链表(四)——以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的节点之前

/**  * 功能:以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的节点之前。  */ 两种方法:直接创建两个链表:一个链表存放小于x的元素,另一个存放大于或等于x的元素。...
  • shangqing1123
  • shangqing1123
  • 2015年08月03日 14:51
  • 1776

链表分割

题目描述 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分...
  • MacanS
  • MacanS
  • 2016年10月21日 19:53
  • 311

程序员面试金典: 9.2链表 2.4以给定值x为基准将链表分割成两部分

#include #include using namespace std; /* 问题:以给定值x为基准将链表分隔成两部分,所有小于x的结点排在大于或等于x的结点之前 分析:本质上是一个划...
  • qingyuanluofeng
  • qingyuanluofeng
  • 2016年12月21日 12:33
  • 299

链表分割

题目描述 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分...
  • cpp12341234
  • cpp12341234
  • 2016年09月28日 20:24
  • 567

链表分割 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来...
  • woshieer
  • woshieer
  • 2017年11月29日 21:52
  • 105

值x将链表划分为两部分,小于x的结点排在大于或等于x 的结点之前

编写代码,以给定值x为基准将链表分割为两部分,所有小于x的结点将排在大于或等于x的结点之前。 /*传入链表的首结点,以及作为链表分割基准的值*/ #include using names...
  • wangfengfan1
  • wangfengfan1
  • 2015年08月18日 17:07
  • 697

程序员面试金典2.4:给定值x为基准将链表分割成两部分

2.4:编写代码,以给定值x为基准将链表分割称两部分,所有小于x的节点排在所有大于或等于x的节点之前; 解法: 要是链表换成数组,搬移元素时就要特别小心,因为搬移数组的开销很大。 不过,移动链表...
  • jsqfengbao
  • jsqfengbao
  • 2015年09月02日 14:54
  • 894

程序员面试经典之链表分割

题目描述 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分...
  • u014136713
  • u014136713
  • 2016年04月28日 21:44
  • 173

链表划分

题目给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。 样例 给定链表 1->4->3->2->5->2->null,并且 x...
  • qunxingvip
  • qunxingvip
  • 2016年07月09日 10:26
  • 440

c++重写卷积网络的前向计算过程,完美复现theano的测试结果

本人的需求是: 通过theano的cnn训练神经网络,将最终稳定的网络权值保存下来。c++实现cnn的前向计算过程,读取theano的权值,复现theano的测试结果 本人最终的成果是: 1、卷积神经...
  • qiaofangjie
  • qiaofangjie
  • 2014年01月09日 16:30
  • 23131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java】以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于等于x的结点之前
举报原因:
原因补充:

(最多只允许输入30个字)