Java转置_Java实现单链表的逆转置

单链表逆转置的递归与非递归方式

package link.reverse;

// 定义一个单链表

class Node {

//变量

private int record;

//指向下一个对象

private Node nextNode;

public Node(int record) {

this.record = record;

}

public int getRecord() {

return record;

}

public void setRecord(int record) {

this.record = record;

}

public Node getNextNode() {

return nextNode;

}

public void setNextNode(Node nextNode) {

this.nextNode = nextNode;

}

}

/**

* 两种方式实现单链表的反转(递归、普通)

*/

public class RevSingleLinkFactory {

/**

* 递归,在反转当前节点之前先反转后续节点

*/

//最终传递一个指向最后一个节点的变量

public static Node reverse1(Node head) {

//当为空或者本节点为末尾节点的时候

if (head ==null ||head.getNextNode()==null)

return head;

Node reversedHead = reverse1(head.getNextNode());

//获取先前的下一个节点,让该节点指向自身

head.getNextNode().setNextNode(head);

//破坏以前自己指向下一个节点

head.setNextNode(null);

//层层传递给最上面的

return reversedHead;

}

/**

* 遍历,将当前节点的下一个节点缓存后更改当前节点指针

*/

public static Node reverse2(Node head) {

if (null == head) {

return head;

}

Node pre = head;

Node cur = head.getNextNode();

Node next;

while (cur !=null) {

//断之前先找到原始的下一个节点

next = cur.getNextNode();

//逆序连接

cur.setNextNode(pre);

//两个节点同时滑动

pre = cur;

cur = next;

}

//将原链表的头节点的下一个节点置为null,再将反转后的头节点赋给head

head.setNextNode(null);

head = pre;

return head;

}

public static void main(String[] args) {

//带有头结点

Node head = new Node(0);

Node tmp = null; // 保存临时变量

Node cur = null; // 始终指向末尾节点

//构造一个长度为10的链表,保存头节点对象head

//利用尾插入法

for (int i = 1; i < 10; i++) {

tmp = new Node(i);

if (1 == i) {

head.setNextNode(tmp);

} else {

cur.setNextNode(tmp);

}

cur = tmp;

}

//打印反转前的链表

Node h = head;

while (h !=null) {

System.out.print(h.getRecord() + " ");

h = h.getNextNode();

}

//调用反转方法

head = reverse1(head);

System.out.println("\n*******************");

//打印反转后的结果

while (head !=null) {

System.out.print(head.getRecord() + " ");

head = head.getNextNode();

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单利 java_Java设计模式-单利模式

单例模式作为对象的创建模式&#xff0c;单例模式确保其某一个类只有一个实例&#xff0c;而且自行实例化并向整个系统提供这个实例&#xff0c;这个类称为单例类。单例模式有以下特点&#xff1a;1、单例类只能有一个实例2、单例类必须自己创建自己的唯一实例3、单例类必须给其…

esp8266接7735_基于8266的ESPEASY固件接入HASS的教程(可无脑接入各类传感...

首先国际惯例&#xff0c;先放上成果:QQ图片20170629160143.png (172.48 KB, 下载次数: 3)2017-6-29 16:03 上传如上图所示&#xff0c;楼主把颗粒物传感器和二氧化碳传感器加入到了HASS里&#xff0c;当然&#xff0c;论坛之前也有诸位大神提供过类似固件和方法来实现这一目标…

java定义private_java9开始——接口中可以定义private私有方法

在传统的Java编程中&#xff0c;被广为人知的一个知识点是&#xff1a;java Interface接口中不能定义private私有方法。只允许我们定义public访问权限的方法、抽象方法或静态方法。但是从Java 9 开始&#xff0c;Interface 接口中允许定义私有方法和私有静态方法。下面我们就来…

java poi生成excel文件_java poi 导出Excel文件

1&#xff0c;导包 poi-3.9-XXX.JAR2, 创建一个实体对象public class Student implements Serializable {/****/private static final long serialVersionUID 1L;private int id;private String name;private int age;private Date borth;public Student(int id, String name…

java中捕获异常的作用_在Java中捕获通用异常?

您可以传递Class对象并以编程方式检查。public static void checkForException(String message,Class exceptionType, ExpectedExceptionBlock block) {try {block.exceptionThrowingCode();} catch (Exception ex) {if ( exceptionType.isInstance(ex) ) {return;} else {thro…

java如何循环调用方法_Java:调用方法的“中断”循环?

我的小程序有点问题。我有一个JOptionPane要求一个数字&#xff0c;如果该数字小于10&#xff0c;则一个循环会一直持续下去&#xff0c;并永远做下去&#xff0c;继续询问数字。 在该循环内&#xff0c;我调用一个方法&#xff0c;将int作为参数。 在该方法中&#xff0c;我需…

随机投点法计算定积分java_11 随机模拟积分 | 统计计算

11.4 高维定积分上面的两种计算一元函数定积分的方法可以很容易地推广到多元函数定积分&#xff0c;或称高维定积分。设\(d\)元函数\(h(x_1, x_2, \dots, x_d)\)定义于超矩形\[\begin{aligned}C \{(x_1, x_2, \ldots, x_d): a_i \leq x_i \leq b_i, i1,2,\ldots,d \}\end{alig…

java el ognl_EL和OGNL表达式的区分

OGNL是通常要结合Struts 2的标志一起使用&#xff0c;如 struts页面中不能单独使用&#xff0c;el可以单独使用 ${sessionScope.username}页面取值区别&#xff1a;名称servletognl elparametersre…

java query包,有没有Java的http_build_query函数的Java等价物?

I have a Map with my data and want to build a query string with it, just like I would with http_build_query on PHP. Im not sure if this code is the best implementation of it or if Im forgetting something?public String toQueryString(Map, ?> data) throw…

JAVA不同类型数组重载_java学习笔记--java中的方法与数组

方法完成特定功能的代码块方法的格式修饰符 返回值类型 方法名(参数类型 参数名1&#xff0c;参数类型 参数名2...){//方法体return 返回值&#xff1b;}方法的调用方式通过方法名调用方法根据形式参数列表将实际参数传递给方法定义方法的注意事项1.方法必须定义在类中2.方法与…

链表每k个反转 java_K 个一组翻转链表

leetcode第25题(困难)问题描述给你一个链表&#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回翻转后的链表。k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。示例&#xff1a;给…

java里面的scanner怎么关闭_作业。scanner怎么不能关闭

package try_catch; import java.util.Scanner; public class TryCatchPractice2 {//在类开始声明,则其他方法都能调用 Scanner in=new Scanner(System.in); NoBookException NoB=new NoBookException(); String[] books={"语文","数学","英语"…

java ddd 领域事件_Cribbb基于DDD/Domain Event领域事件的开源PHP通知系统

Cribbb是一个使用DDD聚合根和领域事件Domain Events概念开发的PHP开源通知框架&#xff1a;cribbb/cribbb GitHub几乎所有Web应用都有一个通知提醒系统&#xff0c;这些通知系统都有共有的属性和功能&#xff1a;一个发往用户的消息管道Cribbb通知系统扮演一种消息管道&#x…

java 自带导出excel_4.java项目页面导出excel功能

用的是SSM框架,字段根据自己的业务需求改1.前台页面导出/*导出按钮提交*/function downloadExcel(){$("#dynamicDownload").submit();}2.后台相关代码import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFFont;import org…

php 运行外部程序_PHP在linux上执行外部命令的方法

目录&#xff1a;一、PHP中调用外部命令介绍二、关于安全问题三、关于超时问题四、关于PHP运行linux环境中命令出现的问题一、PHP中调用外部命令介绍在PHP中调用外部命令&#xff0c;可以用&#xff0c;1>调用专门函数、2>反引号、3>popen()函数打开进程&#xff0c;三…

php直播pk规则,直播源码中的主播PK功能是如何实现的

直播行业为赢得更广泛用户的青睐&#xff0c;自然要不断开发更有趣的玩法、模式&#xff0c;在直播源码中加入主播PK功能就是一种提高直播互动性、激发用户好胜心的方法&#xff0c;一方面这种方法可以吸引更多用户观看&#xff0c;增加主播的曝光率&#xff0c;另一方面它又能…

php中手机端ajax上拉加载更多,jQuery手机网页上拉加载更多

手机网页和PC网页都可以使用的上拉加载更多内容&#xff0c;其中LoadingDataFn自己改为ajax加载就可以了var page 1, //分页码off_on false, //分页开关(滚动加载方法 1 中用的)timers null; //定时器(滚动加载方法 2 中用的)//加载数据var LoadingDataFn function() {var …

phpcms上传php,phpcms如何上传视频

phpcms如何上传视频&#xff1f;phpcms-v9上传视频文件时的解决方案1.不建议直接在后台上传视频文件&#xff0c;因为视频文件一般都比较大&#xff0c;直接上传影响带宽&#xff1b;可先通过ftp工具将视频文件上传到指定目录&#xff0c;然后再后台引入视频文件的地址即可2.如…

护卫神怎么重启php,护卫神·主机大师如何开启php_opcache_护卫神

护卫神主机大师支持5.5至7.3这几个版本开启php_opcache扩展。一&#xff0c;先打开护卫神主机大师面板-常用操作-打开软件目录二&#xff0c;打开phpweb目录&#xff0c;找到要开启opcache的php版本&#xff0c;比如我这里要在php5.5中开启&#xff0c;进入php55目录&#xff0…

php 首页加背景图片,如何在页首添加一张背景图片

Navy主题如何在页首添加一张图片可以http://www.ikk.me/这样子顶部添加背景图片他的代码是【点击查看】回复内容&#xff1a;Navy主题如何在页首添加一张图片可以http://www.ikk.me/这样子顶部添加背景图片他的代码是【点击查看】看了下代码&#xff0c;就是给 section 加了个 …