`

单链表的反转java实现

阅读更多
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实现反转。方法有很多,这里只写最优的。时间复杂度O(n),空间复杂度O(1)。也...

    Java实现单链表以及单链表的操作.zip

    通过Java实现单链表的操作,包括单链表定义、遍历、置空、判空、插入、删除、反转、中间结点、指定顺序排序、前插、后插、判断单链表是否存在环、环的长度、环的起始结点

    单链表操作java版

    单链表的追加创建 删除 排序 反转 合并

    Java算法篇-单链表反转详解.pptx.pptx

    单链表的定义 单链表是一种线性数据结构,它包含一系列的节点,每个节点都含有一个值和...单链表广泛应用于各种编程问题中,如实现栈、队列、双向队列等,以及在解决实际问题如浏览器历史记录、操作系统调度等方面。

    基于Java实现的单链表基本操作之链表反转.zip

    单链表基本操作 基于Java实现的单链表基本操作之链表反转

    Java单链表增删改查的实现

    Java实现单链表的增删改查以及选择、冒泡、反转排序等功能的实现!

    Java实现单链表翻转实例代码

    Java实现单链表反转,递归和非递归两种形式。接下来通过本文给大家分享Java实现单链表翻转实例代码,需要的的朋友参考下

    java 实现单链表逆转详解及实例代码

    主要介绍了java 实现单链表逆转实例代码的相关资料,需要的朋友可以参考下

    java实现常见算法

    测试一个链表是否是循环链表java实现 找出单链表的中间节点 求解约瑟环问题 单链表反转问题 最大子序列和问题 计算最大公因数 判断两个数组中是否有相同的数字 字符串反转

    算法-单链表遍历及反转(java)(csdn)————程序.pdf

    算法-单链表遍历及反转(java)(csdn)————程序

    C语言实现单链表反转

    有些语言没有指针,取而代之的是“引用”,比如 Java、Python。不管是“指针”还是“引用”,实际上,它们的意思都是一样的,都是存储所指对象的内存地址。  将某个变量赋值给指针,实际上就是将这个变量的地址赋值...

    50个必会的数据结构及算法实现源码

    问题:实现单链表反转 问题:实现两个有序的链表合并为一个有序链表 问题:实现求链表的中间结点 栈 问题:用数组实现一个顺序栈 问题:用链表实现一个链式栈 队列 问题:用数组实现一个顺序队列 问题:用...

    javalruleetcode-algorithm:《数据结构与算法之美》练习

    单链表反转 递归实现。空间复杂度 O(n);时间复杂度 O(n) 迭代实现。空间复杂度 O(1);时间复杂度 O(n) 单链表中的环 判断链表中是否有环 快慢指针法。空间复杂度 O(1);时间复杂度 O(n) 判断链表中是否有环。如果有...

    leetcode206 反转链表Java

    反转一个单链表。 这道题的难点在于熟练运用迭代和递归。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路一:迭代 1->2->3->4->5 1<-2<-3<-4<-5 要完成这种变化我们观察,1指向的...

    leetcode567-leetcode-practice:算法实践

    leetcode 567 Algorithms Practice Algorithms and data-structures practice in Python3 or Java. LeetCode LeetCode practise in Python3 && Java. # Title ...单链表反转 344 String 反转字符串 387

    约瑟夫环leetcode-algorithm-and-data-structure:数据结构-java版ANDleetcode刷题

    包括:单向链表的添加、遍历、修改、删除,常见面试题:单向链表有效个数、查找倒数第K个节点、单链表反转、反向遍历链表 主要包含双向链表:com.imyiren.datastructure.linkedlist.DoubleLinkedList 包括:双向链表...

    Leetcode扑克-jianzhi-offer:剑指offer-Java题解

    Leetcode扑克 剑指offer-Java题解 二维数组中的查找 - [行列递增的二维数组搜索]- leetcode 240 ...[反转单链表] - leetcode 206 合并两个排序的链表 - [合并两个有序链表]- leetcode 21 树的子结构 -

    数据结构的一些面试题.pdf

    10. 如何反转单链表? 11. 什么是二叉搜索树? 12. 什么是动态数组,如何实现? 13. 解释图的表示方法:邻接矩阵和邻接表。 14. 什么是深度优先搜索和广度优先搜索? 15. 如何检查二叉树是否是平衡的? 16. 什么是...

    leetcode2-DataStructureDemo:数据结构学习。1、啊哈算法

    1、Java实现单链表,支持增删改查。 2、单向链表反转 3、单向链表是否有环 4、合并两个有序链表 5、删除链表倒数第 n 个结点 6、求单向链表的中间结点 二、栈 1、Java实现顺序栈、链式栈 三、队列 1、顺序队列、链式...

Global site tag (gtag.js) - Google Analytics