java list翻转_JAVA实现两种方法反转单列表

/***@authorluochengcheng

* 定义一个单链表*/

classNode {//变量

private intrecord;//指向下一个对象

privateNode nextNode;public Node(intrecord) {super();this.record =record;

}public intgetRecord() {returnrecord;

}public void setRecord(intrecord) {this.record =record;

}publicNode getNextNode() {returnnextNode;

}public voidsetNextNode(Node nextNode) {this.nextNode =nextNode;

}

}/***@authorluochengcheng

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

* 新手强烈建议旁边拿着纸和笔跟着代码画图(便于理解)*/

public classReverseSingleList {/*** 递归,在反转当前节点之前先反转后续节点*/

public staticNode reverse(Node head) {if (null == head || null ==head.getNextNode()) {returnhead;

}

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

head.getNextNode().setNextNode(head);

head.setNextNode(null);returnreversedHead;

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

**/

public staticNode reverse2(Node head) {if (null ==head) {returnhead;

}

Node pre=head;

Node cur=head.getNextNode();

Node next;while (null !=cur) {

next=cur.getNextNode();

cur.setNextNode(pre);

pre=cur;

cur=next;

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

head.setNextNode(null);

head=pre;returnhead;

}public static voidmain(String[] args) {

Node head= new Node(0);

Node tmp= null;

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

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

tmp= newNode(i);if (1 ==i) {

head.setNextNode(tmp);

}else{

cur.setNextNode(tmp);

}

cur=tmp;

}//打印反转前的链表

Node h =head;while (null !=h) {

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

h=h.getNextNode();

}//调用反转方法

head =reverse2(head);

System.out.println("\n**************************");//打印反转后的结果

while (null !=head) {

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

head=head.getNextNode();

}

}

}

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

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

相关文章

OpenAI Whisper论文笔记

OpenAI Whisper论文笔记 OpenAI 收集了 68 万小时的有标签的语音数据&#xff0c;通过多任务、多语言的方式训练了一个 seq2seq &#xff08;语音到文本&#xff09;的 Transformer 模型&#xff0c;自动语音识别&#xff08;ASR&#xff09;能力达到商用水准。本文为李沐老师…

mysql 工具 08s01_Mysql管理必备工具Maatkit详解之十四(mk-kill)

mk-kill - 顾名思义&#xff0c;杀mysql线程。安装方法查看这里。在一个OLTP的生产环境&#xff0c;一般不会让sql执行过长的时间&#xff0c;特别是myisam这样表锁的引擎&#xff0c;如果出现长时间执行的sql一般是误操作&#xff0c;要不就是出现问题了。出现这种情况&#x…

【经典简读】知识蒸馏(Knowledge Distillation) 经典之作

【经典简读】知识蒸馏(Knowledge Distillation) 经典之作 转自&#xff1a;【经典简读】知识蒸馏(Knowledge Distillation) 经典之作 作者&#xff1a;潘小小 知识蒸馏是一种模型压缩方法&#xff0c;是一种基于“教师-学生网络思想”的训练方法&#xff0c;由于其简单&#xf…

深度学习三大谜团:集成、知识蒸馏和自蒸馏

深度学习三大谜团&#xff1a;集成、知识蒸馏和自蒸馏 转自&#xff1a;https://mp.weixin.qq.com/s/DdgjJ-j6jHHleGtq8DlNSA 原文&#xff08;英&#xff09;&#xff1a;https://www.microsoft.com/en-us/research/blog/three-mysteries-in-deep-learning-ensemble-knowledge…

在墙上找垂直线_墙上如何快速找水平线

在装修房子的时候&#xff0c;墙面的面积一般都很大&#xff0c;所以在施工的时候要找准水平线很重要&#xff0c;那么一般施工人员是如何在墙上快速找水平线的呢&#xff1f;今天小编就来告诉大家几种找水平线的方法。一、如何快速找水平线1、用一根透明的软管&#xff0c;长度…

百度地图mysql打点_关于百度地图连接MYSQL的问题,谢谢啦!

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼大家好&#xff0c;刚使用百度地图API&#xff0c;请教大家一个问题&#xff0c;谢啦&#xff01;我需要从我的数据库中取出字段为"city"的所有数据&#xff0c;然后通过bdGEO()函数在地图上标注这些城市&#xff0c;我是…

PyTorch中的torch.nn.Parameter() 详解

PyTorch中的torch.nn.Parameter() 详解 今天来聊一下PyTorch中的torch.nn.Parameter()这个函数&#xff0c;笔者第一次见的时候也是大概能理解函数的用途&#xff0c;但是具体实现原理细节也是云里雾里&#xff0c;在参考了几篇博文&#xff0c;做过几个实验之后算是清晰了&am…

Vision Transformer(ViT)PyTorch代码全解析(附图解)

Vision Transformer&#xff08;ViT&#xff09;PyTorch代码全解析 最近CV领域的Vision Transformer将在NLP领域的Transormer结果借鉴过来&#xff0c;屠杀了各大CV榜单。本文将根据最原始的Vision Transformer论文&#xff0c;及其PyTorch实现&#xff0c;将整个ViT的代码做一…

hdfs的副本数为啥增加了_HDFS详解之块大小和副本数

1.HDFSHDFS : 伪分布式(学习)NNDNSNNsbin/start-dfs.sh(开启hdfs使用的脚本)bin/hdfs dfs -ls (输入命令加前缀bin/hdfs dfs)2.block(块)dfs.blocksize &#xff1a; 134217728(字节) / 128M 官网默认一个块的大小128M*举例理解块1个文件 130M&#xff0c;默认一个块的大小128M…

Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)

Linux下的ELF文件、链接、加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程&#xff0c;这个文件可以被加载到内存并执行。链接可以执行与编译时&#xff0c;也就是在源代码被翻译成机器代码时&#xff1b;也可以执行于加载时&#xff0c;也就是被加载器加…

mysql gender_Mysql第一弹

1、创建数据库pythoncreate database python charsetutf8;2、设计班级表结构为id、name、isdelete&#xff0c;编写创建表的语句create table classes(id int unsigned auto_increment primary key not null,name varchar(10),isdelete bit default 0);向班级表中插入数据pytho…

python virtualenv nginx_Ubuntu下搭建Nginx+supervisor+pypy+virtualenv

系统&#xff1a;Ubuntu 14.04 LTS搭建python的运行环境&#xff1a;NginxSupervisorPypyVirtualenv软件说明&#xff1a;Nginx&#xff1a;通过upstream进行负载均衡Supervisor&#xff1a;管理python进程Pypy&#xff1a;用Python实现的Python解释器PyPy is a fast, complian…

如何设置mysql表中文乱码_php mysql表中文乱码问题如何解决

为避免mysql中出现中文乱码&#xff0c;建议在创建数据库时指定编码格式&#xff1a;复制代码 代码示例:create database zzjz CHARACTER SET gbk COLLATE gbk_chinese_ci;create table zz_employees (employeeid int unsigned not null auto_increment primary key,name varch…

java 按钮 监听_Button的四种监听方式

Button按钮设置点击的四种监听方式注&#xff1a;加粗放大的都是改变的代码1.使用匿名内部类的形式进行设置使用匿名内部类的形式&#xff0c;直接将需要设置的onClickListener接口对象初始化&#xff0c;内部的onClick方法会在按钮被点击的时候执行第一个活动的java代码&#…

java int转bitmap_Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码...

首先是网上大神给的类package com.duanlian.daimengmusic.utils;public final class Base64Util {private static final int BASELENGTH 128;private static final int LOOKUPLENGTH 64;private static final int TWENTYFOURBITGROUP 24;private static final int EIGHTBIT …

linux查看java虚拟机内存_深入理解java虚拟机(linux与jvm内存关系)

本文转载自美团技术团队发表的同名文章https://tech.meituan.com/linux-jvm-memory.html一, linux与进程内存模型要理解jvm最重要的一点是要知道jvm只是linux的一个进程,把jvm的视野放大,就能很好的理解JVM细分的一些概念下图给出了硬件系统进程三个层面内存之间的关系.从硬件上…

java 循环stringbuffer_java常用类-----StringBuilder和StringBuffer的用法

一、可变字符常用方法package cn.zxg.PackgeUse;/*** 测试StringBuilder,StringBuffer可变字符序列常用方法*/public class TestStringBuilder2 {public static void main(String[] args) {StringBuilder sbnew StringBuilder();for(int i0;i<26;i){char temp(char)(ai);sb.…

java function void_Java8中你可能不知道的一些地方之函数式接口实战

什么时候可以使用 Lambda&#xff1f;通常 Lambda 表达式是用在函数式接口上使用的。从 Java8 开始引入了函数式接口&#xff0c;其说明比较简单&#xff1a;函数式接口(Functional Interface)就是一个有且仅有一个抽象方法&#xff0c;但是可以有多个非抽象方法的接口。 java8…

java jvm内存地址_JVM--Java内存区域

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域&#xff0c;如图&#xff1a;1.程序计数器可以看作是当前线程所执行的字节码的行号指示器&#xff0c;通俗的讲就是用来指示执行哪条指令的。为了线程切换后能恢复到正确的执行位置Java多线程是…

java情人节_情人节写给女朋友Java Swing代码程序

马上又要到情人节了&#xff0c;再不解风情的人也得向女友表示表示。作为一个程序员&#xff0c;示爱的时候自然也要用我们自己的方式。这里给大家上传一段我在今年情人节的时候写给女朋友的一段简单的Java Swing代码&#xff0c;主要定义了一个对话框&#xff0c;让女友选择是…