public class Test {
public static void main(String[] args) {
Node link = createLink(10);
printNodeLink(link);
System.out.print("\n");
Node link2 = reverNodeLink(link);
printNodeLink(link2);
System.out.println("\n链表长度:" + getLinkSize(link2));
}
/**
* 构造一个链表
*
* @return 链表头结点
*/
private static Node createLink(int count) {
Node node = new Node();
node.setValue("n" + count);
if (count > 0) {
node.setNext(createLink(--count));
} else {
node.setNext(null);
}
return node;
}
/**
* 输出链表
*
* @param head
* 链表头结点
*/
private static void printNodeLink(Node head) {
while (head != null) {
System.out.print(head.getValue());
if (head.getNext() != null) {
System.out.print(" -> ");
}
head = head.getNext();
}
}
/**
* 反转链表
*
* @param head
* 操作前链表头结点
* @return 操作后链表头结点
*/
private static Node reverNodeLink(Node head) {
if (null == head || head.getNext() == null) {
return head;
}
Node point = head.getNext();
head.setNext(null);
Node temp = null;
do {
temp = point.getNext();
point.setNext(head);
head = point;
point = temp;
} while (point != null);
return head;
}
/**
* 计算链表长度
*
* @param head
* 链表头结点
* @return 链表长度
*/
private static int getLinkSize(Node head) {
if (head == null) {
return 0;
}
if (head.getNext() == null) {
return 1;
} else {
return 1 + getLinkSize(head.getNext());
}
}
}
分享到:
相关推荐
用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。
用Java定义一个双向链表,实现链表的基本操作: 初始化、获取头结点、添加新元素、删除链表元素、 获取链表元素、查找链表元素、更新链表中某个元素、 判断链表是否为空、求链表元素个数、输出链表元素、清空链表。
用java实现双向链表的完整操作,主要用到内部类实现。
用Java定义一个循环链表,实现链表的基本操作: 初始化*、获取头结点、添加新元素*、删除链表元素 、获取链表元素*、查找链表元素*、更新链表中某个元素、 判断链表是否为空、求链表元素个数、输出链表元素、清空...
一个java实例,用来描述java算法中链表的使用。
链表是一种物理存储单元上非连续、非顺序的存储结构。 java代码实现单链表,插入,删除和遍历等功能。 链表能够灵活的进行插入和删除操作,时间复杂度为O(1),链表的查找时间复杂度为O(n)。
操作包括: 1. 在头部添加结点 2. 在尾部添加结点 3. 遍历 4. 逆置 5. 删除
Java实现单链表的基本操作
用java编写的链表演示软件源代码,实现了链表的初始化,插入,删除,搜索功能等,导入工程可直接使用。
链表的JAVA实现 链表的建立、插入、删除操作
主要介绍了Java实现链表的常见操作算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
单链表基本操作 基于Java实现的单链表基本操作之链表排序
单链表基本操作 基于Java实现的单链表基本操作之链表反转
单链表基本操作 基于Java实现的单链表基本操作之链表相交
单链表基本操作 基于Java实现的单链表基本操作之链表合并
单链表基本操作 基于Java实现的单链表基本操作之链表分割
单链表基本操作 基于Java实现的单链表基本操作之获取链表长度
主要介绍了Java实现链表中元素的获取、查询和修改方法,结合实例形式详细分析了Java针对链表中元素的获取、查询和修改相关原理、实现方法及操作注意事项,需要的朋友可以参考下
通过Java实现单链表的操作,包括单链表定义、遍历、置空、判空、插入、删除、反转、中间结点、指定顺序排序、前插、后插、判断单链表是否存在环、环的长度、环的起始结点
链表操作程序(完整)C语言.txt链表操作程序(完整)C语言.txt