java实现单链表倒转的方法

 更新时间:2022年05月05日 10:40:20   作者:fb0122  
这篇文章主要为大家详细介绍了java实现单链表倒转的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java中有关单链表反转的方法有很多种,这里记录一种并附上详细步骤:

代码如下

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode reverseList(ListNode head) { 
        ListNode pre;
        ListNode temp;
        pre = head; // 前驱节点
        ListNode cur = head.next //当前节点

        while(cur != null && cur.next != null){
            temp = cur.next;    //(1)
            cur.next = pre;        //(2)
            pre = cur;     //(3)
            cur = temp;          //(4)

        }
        head.next = null //原头节点,反转后尾节点
        return pre;   //原尾节点  反转后头节点
    }
}

主要的操作是在while循环中,下面画图解释一下是如何实现单链表倒转的:
首先java中没有指针的概念,但是可以看到ListNode中的next属性其实就代表指向下一个节点的“指针”,因此可以这样来理解:

1、原单链表:

假设单链表有三个元素[1,2,3],0为上述的头对象

2、执行(1)、(2)后:

cur.next指向了n.next:

3、执行(3):

4、执行(4):

第一次循环结束,第一次循环后的单链表如上图所示。
cur != null && cur.next != null,因此执行第二次循环:

5、第二次执行(1),(2):

6、第二次执行(3):

7、第二次执行(4):

cur.next == null 推出循环
以上,实现单链表的倒转。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java实现获取安卓设备里已安装的软件包

    java实现获取安卓设备里已安装的软件包

    本文给大家介绍的是如何获取设备中已经安装的应用软件包的代码,其核心方法原理很简单,我们通过Android中提供的PackageManager类,来获取手机中安装的应用程序信息
    2015-10-10
  • 谈谈Java利用原始HttpURLConnection发送POST数据

    谈谈Java利用原始HttpURLConnection发送POST数据

    这篇文章主要给大家介绍java利用原始httpUrlConnection发送post数据,设计到httpUrlConnection类的相关知识,感兴趣的朋友跟着小编一起学习吧
    2015-10-10
  • Java中使用数组实现栈数据结构实例

    Java中使用数组实现栈数据结构实例

    这篇文章主要介绍了Java中使用数组实现栈数据结构实例,本文先是讲解了实现栈至少应该包括以下几个方法等知识,然后给出代码实例,需要的朋友可以参考下
    2015-01-01
  • SpringCloud Eureka服务的基本配置和操作方法

    SpringCloud Eureka服务的基本配置和操作方法

    Eureka是Netflix开源的一个基于REST的服务治理框架,主要用于实现微服务架构中的服务注册与发现,Eureka是Netflix开源的服务发现框架,用于在分布式系统中实现服务的自动注册与发现,本文介绍SpringCloud Eureka服务的基本配置和操作方法,感兴趣的朋友一起看看吧
    2023-12-12
  • java网络编程基础知识介绍

    java网络编程基础知识介绍

    这篇文章主要介绍了java网络编程基础知识介绍,涉及OSI分层模型和TCP/IP分层模型的对应关系、IP地址、端口号、tcp、udp等相关内容,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11
  • 解决Spring Security 用户帐号已被锁定问题

    解决Spring Security 用户帐号已被锁定问题

    这篇文章主要介绍了解决Spring Security 用户帐号已被锁定问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 设置Myeclipse中的代码格式化、注释模板及保存时自动格式化

    设置Myeclipse中的代码格式化、注释模板及保存时自动格式化

    这篇文章主要介绍了设置Myeclipse中的代码格式化、注释模板及保存时自动格式化方法,需要的朋友可以参考下
    2014-10-10
  • SpringBoot+docker环境变量配置详解

    SpringBoot+docker环境变量配置详解

    这篇文章主要介绍了SpringBoot+docker环境变量配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Springboot使用@Cacheable注解实现数据缓存

    Springboot使用@Cacheable注解实现数据缓存

    本文介绍如何在Springboot中通过@Cacheable注解实现数据缓存,在每次调用添加了@Cacheable注解的方法时,Spring 会检查指定参数的指定目标方法是否已经被调用过,文中有详细的代码示例,需要的朋友可以参考下
    2023-10-10
  • Spring Boot Shiro在Web应用中的作用详解

    Spring Boot Shiro在Web应用中的作用详解

    这篇文章主要为大家介绍了Spring Boot Shiro在Web应用中的作用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02

最新评论