【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的元素。...

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

编写代码,以给定值x为基准将链表分割为两部分,所有小于x的结点将排在大于或等于x的结点之前。 /*传入链表的首结点,以及作为链表分割基准的值*/ #include using names...

删除链表结点和链表分成两部分

有一段时间没有练习了,练习了两题,删除结点没有指出结点的位置,对链表的操作,可以总结一下。关于链表是否有头节点自己看题。。。 /*********************************...

项目一--输出链表中是否有值为X的结点

问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:words.cpp *作 者:尚 月 *完成日期...

WV.7-动态链表-删除链表中值为x的结点

问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:words.cpp *作 者:单昕昕 ...
  • MIKASA3
  • MIKASA3
  • 2015年01月17日 12:01
  • 906

第十九周项目一(二):动态链表体验二(输出链表中是否有值为x的结点)

 /* *copyright (c) 2014, 烟台大学计算机学院. *All rights reserved. *文件名称:test.cpp *作者:陆云杰 *完成日期:2015...

设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点

代码如下: void Del_X_3(LinkList &L,ElemType x) { LNode *p; if(L==NULL) return ; if(L->data==x) ...

头插法,尾插法,创建单链表,然后删除所有结点值为x的结点

头插法,尾插法,创建单链表,然后删除所有结点值为x的结点 实现代码: #include #include typedef struct LNode{ int data; struct LNo...

9.2链表(五)——给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部

/**  * 功能:给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。  * 编写函数对这两个整数求和,并用链表形式返回结果。  * 进阶:假设这些数...

用Java编写不带头结点的链表

  • 2011年10月17日 09:14
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java】以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于等于x的结点之前
举报原因:
原因补充:

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