public void reverseLink(){
LinkNode current= new LinkNode("");
LinkNode previous = new LinkNode("");
LinkNode next = new LinkNode("");
if(headLink.link == null){return;}
point.link = headLink.link;
next.link = point.link.link;
while(point.link!=null){
current.link.link = previous.link;
previous.link = current.link;
current.link = next.link;
if(next.link!=null)//不加判断next.link.link当next.link=null时空指针异常
next.link = next.link.link;
}
headLink.link = previous.link;
}
心得:在写程序的时候必须思路清晰 思路不清晰的时候写出来的程序十有八九是有问题的,现在看起来程序还是比较简单的。但我在公司熬了一夜也没有弄好,原因就是思路不够清晰、命名也不够直观。
LinkNode定义:
class LinkNode{
LinkNode link;
String data;
LinkNode(String data){
this.data = data;
link = null;
}
}
分享到:
相关推荐
实现了一个简单的java版本的单链表,链表反转和链表是否相交如果相交求相交节点。关于链表是否相交是一次阿里的面试的在线试题,挂的很彻底。然后就在网上找了几个实现思路自己用java做了一个简单的实现....
在Java中,单链表反转的代码实现可以采用迭代或递归的方式。迭代方法通常涉及三个指针,分别用于追踪当前节点、前一个节点和头节点。在遍历过程中,当前节点的next指针会指向前一个节点,然后前一个节点和当前节点...
单链表反转是面试时经常会遇到的问题,之前只是在数据结构里用伪代码实现过单链表反转。为落实亲手编写每一个程序的目标,在这里用java实现反转。方法有很多,这里只写最优的。时间复杂度O(n),空间复杂度O(1)。也...
以上就是使用Java实现单链表及其实现的各种操作的详细解析。掌握这些基本操作,能帮助我们在处理复杂问题时更加得心应手。在实际编程中,根据具体需求,还可以扩展链表的功能,例如支持双向链表、循环链表等。
在这个主题中,我们将深入探讨如何使用Java来实现单链表,特别是关注如何插入元素以及如何构建链表。 单链表由一系列节点组成,每个节点包含两部分:数据元素和指向下一个节点的引用。在Java中,我们可以通过创建一...
单链表反转是指将单链表的顺序颠倒,使得原来最后一个节点变成第一个节点,原来第一个节点变成最后一个节点。 标签解释 由于没有提供标签信息,所以本节不进行解释。 部分内容解释 代码主要包括两个部分:单链表...
单链表的追加创建 删除 排序 反转 合并
这些基本操作展示了如何使用Java实现单链表的主要功能。在实际应用中,可能还需要实现其他功能,如反转链表、查找元素、合并两个排序的链表等。通过熟练掌握单链表的实现,可以为理解和操作更复杂的数据结构打下坚实...
在 Java 中,实现常见算法是非常重要的,以下是关于链表、约瑟环问题、单链表反转、最大子序列和问题、最大公因数、判断两个数组中是否有相同的数字、字符串反转等知识点的总结。 判断链表是否为循环链表 判断链表...
在这个基于Java实现的单链表基本操作中,我们将重点关注链表反转这一特定操作。 链表反转是编程面试中常见的问题,它要求我们改变链表中节点的顺序,使得原链表的最后一个节点成为新链表的第一个节点,原链表的第一...
以上是Java实现单链表基本操作的详细步骤。通过理解这些基础知识,你可以轻松地扩展链表的功能,实现更复杂的算法和数据结构操作。在实际编程中,了解并熟练掌握这些概念对于提高代码效率和解决实际问题至关重要。
在这个Java实现中,我们有两个方法来完成这个任务:一个使用递归,另一个使用循环。 1. **递归实现单链表逆转**: 递归方法通过将问题分解为更小的子问题来工作。在这里,我们首先检查基本情况,即链表为空或只有...
### 单链表逆置的完整实现Java版 #### 知识点概述 本文将详细介绍如何在Java中实现单链表的逆置操作,并通过一个实际的代码示例来展示整个过程。逆置单链表是一项常见的数据结构操作,在很多算法问题中都会遇到,...
通过阅读并分析博主baby69yy2000的博客,你可以进一步了解单链表的实际应用和Java实现细节。同时,也可以尝试自己编写相关的练习题,加深对这一概念的理解。 总之,单链表是编程基础中的基础,无论是面试还是实际...
以上就是关于链表创建、单链表反转以及逆序打印的基本介绍。这些操作在面试中经常被考察,理解并熟练掌握它们对于成为一名合格的程序员至关重要。链表作为数据结构的基础,它的应用广泛且灵活,理解和运用好链表能...
有些语言没有指针,取而代之的是“引用”,比如 Java、Python。不管是“指针”还是“引用”,实际上,它们的意思都是一样的,都是存储所指对象的内存地址。 将某个变量赋值给指针,实际上就是将这个变量的地址赋值...
除了查找,单链表还支持反转、合并、排序等操作,每种操作都有其独特的算法和实现技巧。 9. **实际应用**: 单链表常用于实现队列、栈等数据结构,以及模拟内存管理等任务,是理解更复杂数据结构如双向链表、循环...
在Java编程中,单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个值和一个指向下一个节点的引用。单链表的翻转是数据结构与算法中的一个经典问题,通常有两种主要的实现方式:递归和非递归。本篇...
6. **反转链表**:可以通过迭代或递归方式实现链表的反转。 7. **合并两个有序链表**:将两个已排序的链表合并为一个有序链表。 8. **查找链表的中间节点**:有多种方法,如快慢指针法。 9. **判断链表是否有环**...
在这个"Java算法实例-单链表操作"中,我们将探讨如何在Java中实现单链表,包括其基本操作如插入、删除、遍历等。这些操作对于理解和解决各种算法问题至关重要,尤其对于学习和准备编程考试的学员来说,是非常实用的...