本文介绍两种方法单向链表反转。记录,如下面:

1.

package com.leetcode;

public class ListReverse {

	public static void main(String[] args) {
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
node1.next = node2;
node2.next = node3;
node3.next = node4; Node head = reverse(node1);
while(head != null){
System.out.println(head.val);
head = head.next;
} } public static Node reverse(Node head){
Node cur = head, post = head.next;
head.next = null;
while(post != null){
Node tmp = post;
post = post.next;
tmp.next = cur;
cur = tmp;
}
return cur;
} static class Node{
int val;
Node next;
Node(int val){
this.val = val;
this.next = null;
}
} }

执行结果为:

4
3
2
1

2.

package com.leetcode;

public class ListReverse {

	public static void main(String[] args) {
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
node1.next = node2;
node2.next = node3;
node3.next = node4; Node head = reverse(node1);
while(head != null){
System.out.println(head.val);
head = head.next;
} } public static Node reverse(Node head){
Node dummy = new Node(-1);
dummy.next = head;
Node pre = dummy, cur = head, post = head.next;
while(post != null){
cur.next = post.next;
post.next = pre.next;
pre.next = post;
post = cur.next;
}
return dummy.next;
} static class Node{
int val;
Node next;
Node(int val){
this.val = val;
this.next = null;
}
} }

执行结果为:

4
3
2
1

版权声明:本文博主原创文章。博客,未经同意不得转载。

Java单链逆转的更多相关文章

  1. 微信团队分享:Kotlin渐被认可,Android版微信的技术尝鲜之旅

    本文由微信开发团队工程是由“oneliang”原创发表于WeMobileDev公众号,内容稍有改动. 1.引言   Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发( ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. 面试时,当你有权提问时,别客气,这是个逆转的好机会(内容摘自Java Web轻量级开发面试教程)

    前些天,我在博客园里写了篇文章,如何在面试中介绍自己的项目经验,收获了2千多个点击,这无疑鼓舞了我继续分享的热情,今天我来分享另外一个面试中的甚至可以帮助大家逆转的技巧,本文来是从 java web轻 ...

  4. 字符串逆转(递归和非递归java)

    package 乒乒乓乓; public class 递归逆转字符串 {    //非递归逆转    public static String reverse(String s)    {       ...

  5. 逆转单向链表看这一篇就够了【JAVA】

    逆转单向链表 逆转前: 1 -> 2 -> 3 -> 4 -> 5 -> null 逆转后: 5 -> 4 -> 3 -> 2 -> 1 -> ...

  6. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  7. java 链表数据结构

    首先,单链表相对于队列的优势在于存储地址不是连续的,这样的意义在于,操作其中的某一个位置的元素时不需要对之前的其他元素都进行内存操作,大大的为我们的计算机减压了.下面直接进入正题: 先要定义一个结点类 ...

  8. JAVA基本类库介绍

    我们曾经讲过,Java已经为编程者编制了许多类,这些类已经经过测试,基本上不存在错误,这些类都是我们编程的基础.如果不利用这些已存在的类,我们的 编程工作将变得异常复杂,所以我们应尽可能多的掌握Jav ...

  9. Java基础知识系列——数组

    数组是我们在编程中常用到的一种数据结构. 数组创建有三种方式,以int类型为例: 1.int value[] = new int[]{1,2,3,4,5}; //{}中的是元素 2.int value ...

随机推荐

  1. XSS漏洞的分类

    XSS漏洞依照攻击利用手法的不同,有下面三种类型: 类型A,本地利用漏洞,这样的漏洞存在于页面中client脚本自身.其攻击步骤例如以下所看到的: Alice给Bob发送一个恶意构造了Web的URL. ...

  2. 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!

    本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超 ...

  3. Java重命名文件

    File file = new File("D:\\aa\a.txt");     file.renameTo(new File("D:\\aa\\b.txt" ...

  4. Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_1

    以下是一些设计略显繁琐,有必要清除思维. 下一个主要的成就,当我们点击Gobutton后,得到一个随机数骰子,是走了几步,它是基于以下步骤行走路径的数目,然后移动位置的基于角色的路径. 流程如图普遍认 ...

  5. 从零開始学android<RelativeLayout相对布局.十六.>

    相对布局管理器指的是參考某一其它控件进行摆放,能够通过控制,将组件摆放在一个指定參考组件的上.下.左.右等位置,这些能够直接通过各个组件提供的属性完毕. 以下介绍一下各个方法的基本使用 No. 属性名 ...

  6. 动画(Animation) 它 (闪烁、左右摇摆、跷跷板等功效)

    一侧到另一侧的影响: (这里显示的是并不那么顺利) 一.续播  (不知道取什么名字好,就是先播放动画A, 接着播放动画B) 有两种方式. 第一种.分别动画两个动画,A和B, 然后先播放动画A,设置A ...

  7. Nutch+Lucene搜索引擎开发实践

    网络拓扑 图 1 网络拓扑图 安装Java JDK 首先查看系统是否已经安装了其它版本号的JDK,假设有,先要把其它版本号的JDK卸载. 用root用户登录系统. # rpm-qa|grep gcj ...

  8. java编程中容易犯2的细节汇总

    1.for() 和 while() 执行步骤 for(s1;s2;s3){ s4;} 1.进入循环执行s1;       2.执行s2;//条件为真才执行s4,不然就跳出for了.      3,执行 ...

  9. JAVA基础编程50题(10-12题)具体解释

    一.描写叙述 1.一球从m米高度自由落下.每次落地后反跳回原高度的一半:再落下,求它在 第n次落地时.共经过多少米?第10次反弹多高? 2.有1.2.3.4个数字.能组成多少个互不同样且无反复数字的三 ...

  10. 大约SQL现场“这包括”与“包括在”字符串的写法

     1.字段查找表值"这包括"方法一字符串的所有记录 如果表中有一name场,查询name这包括"乔 - 史密斯"所有记录.能够写sql: Stirng st ...