逆转单向链表看这一篇就够了java(代码片段)

nicecui nicecui     2022-12-21     608

关键词:

逆转单向链表

逆转前: 1 -> 2 -> 3 -> 4 -> 5 -> null

逆转后: 5 -> 4 -> 3 -> 2 -> 1 -> null

个人博客地址:逆转单向链表

方法一、循环迭代

技术图片

public Node reverse(Node head) 
        if (head == null || head.next == null) 
            return head;
        
        // 取前面节点
        Node pre = head;
        // 取后面节点
        Node cur = head.next;
        // 临时节点
        Node temp = null;
        while (cur != null) 
            // 1. 保存后节点的指向节点 因为要替换后节点的指向节点为他的前节点
            temp = cur.next;
            // 2. 把后节点的指向的节点替换成前节点
            cur.next = pre;
            // 下一轮要替换的前节点和后节点
            // 第一次 pre = 1 cur =2  || 那第二次 就得 pre = 2 cur = 3
            pre = cur;
            cur = temp;
        
        // 在上述过程中未替换首节点的指向节点 这里首节点将成为尾节点 所以指向null
        head.next = null;
        // 因为循环的条件是cur是否为null 如果cur为null 那 pre将是原来链表的尾节点
        // 就是逆转后的首节点
        return cur;
    

方法二:递归

public Node recursionNode(Node head) 
         if (head == null || head.next == null) 
            return head;
        
        // head 1 2 3 4
        Node node = reverseNode(head.next);
        // 展示顺序 head 4 3 2 1

        // 第一轮:
        // 当前指向顺序 4 -> 5 
        
        head.next.next = head; // 变成了 5 -> 4 但是4的指针仍然指向5 也就是双向的
        // 所以 4 -> null 变成单向
        head.next = null;
        
        // node是最后一个元素 5 也就是逆转后的 第一个元素
        return node;
    

更多文章查看个人博客 个人博客地址:逆转单向链表

handler看这一篇就够了(代码片段)

Handler使用首先来熟悉一下Handler的四种使用方式,如果比较熟悉可以直接跳过:通过sendMessage消息机制来发送sendEmptyMessage(int);//发送一个空的消息sendMessage(Message);//发送消息,消息中可以携带参数sendMessageAtTime(Message,long... 查看详情

最全排序算法及优化,看这一篇就够了(代码片段)

最全排序算法总结看这一篇就够了没有经过总结的知识是沉重的,无用的瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门目录... 查看详情

学会java输入输出流,看这一篇就够了,建议收藏!(代码片段)

1、流的概念Java语言采用流的机制来实现输入/输出。所谓流,就是数据的有序排列。而流可以是从某个源(称为流源,SourceofStream)出来,到某个目的地(称为流汇,SinkofStream)去的。1.1、流的分类... 查看详情

css渐变背景看这一篇就够了(代码片段)

CSS渐变背景看这一篇就够了在我们自己设计网页的时候,为了好看美观,颜色可谓是最让人头疼的一部分。尤其是在配色上又找不到一些好看的网站。今天我就来记录一些好看的渐变式背景,和一些常用的颜色网站。... 查看详情

☀️javanio?看这一篇就够了!!☀️(代码片段)

文章目录一、NIO简介1.1NIO概述1.2NIO&IO分析1.2.1IO操作流程1.2.2面向流与面向缓冲区1.2.3阻塞与非阻塞1.2.4.同步与异步二、Buffer基本应用2.1Buffer概述2.2Buffer基本应用三、Channel基本应用3.1Channel概述3.2FileChannel基本应用3.3SocketChanel基... 查看详情

☀️javanio?看这一篇就够了!!☀️(代码片段)

文章目录一、NIO简介1.1NIO概述1.2NIO&IO分析1.2.1IO操作流程1.2.2面向流与面向缓冲区1.2.3阻塞与非阻塞1.2.4.同步与异步二、Buffer基本应用2.1Buffer概述2.2Buffer基本应用三、Channel基本应用3.1Channel概述3.2FileChannel基本应用3.3SocketChanel基... 查看详情

想要弄懂groupby看这一篇就够了(代码片段)

一、前言groupby关键字,不管是工作中还是面试都会经常被用到,所以弄懂它是非常有必要的。要弄懂groupby那我们就得联合着:聚合函数、groupby、having一块讲解。讲之前我们先准备一张表:二、聚合函数为了讲好groupby我们必须... 查看详情

java注解看这一篇就够了

注解1.概念注解:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的注解的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次... 查看详情

cas自旋锁,看这一篇就够了(代码片段)

前序时隔多年,杰伦终于出了新专辑,《最伟大的作品》让我们穿越到1920年,见到了马格利特的绿苹果、大利的超现实、常玉画的大腿、莫奈的睡莲、徐志摩的诗…他说“最伟大的作品”并不是自己的歌,而是这... 查看详情

java中的多线程你只要看这一篇就够了

 https://www.cnblogs.com/wxd0108/p/5479442.html  查看详情

系统性的学会pandas看这一篇就够了(代码片段)

作者:MaSizhou https://blog.csdn.net/weixin_45901519/article/details/1129808221、Pandas数据结构2008年WesMcKinney开发出的库专门用于数据挖掘的开源python库以Numpy为基础,借力Numpy模块在计算方面性能高的优势基于matplotlib,能够简便的... 查看详情

java基础算法看这一篇就够了,简单全面一发入魂(代码片段)

目录1、简单的概述一下你眼中的算法?2、什么是Java的字节码?3、如何才能将一个double变量初始化为无穷大?4、能够将double类型的值和int类型的值相互比较吗?5、如果使用一个变量前没有将它初始化,会发... 查看详情

jquery框架超详细dom操作看这一篇就够了!(代码片段)

目录写在前面一、内容操作1.html()2.text()3.val()二、属性操作(1)通用属性操作1.attr():2.removeAttr()3.prop()4.removeProp()5.attr和prop区别(2)对class属性操作1.addClass()2.removeClass()3.toggleClass()4.css()三、 查看详情

redux从入门到进阶,看这一篇就够了!(代码片段)

Redux,带你从入门到进阶🌂序言☂️一、基础知识1、Redux概念简述2、Redux的工作流程🎃二、使用Antd实现TodoList页面布局1、在项目中使用Antd2、使用Antd实现TodoList的基本布局3、创建redux中的store(1)创建storeÿ... 查看详情

redux从入门到进阶,看这一篇就够了!(代码片段)

Redux,带你从入门到进阶🌂序言☂️一、基础知识1、Redux概念简述2、Redux的工作流程🎃二、使用Antd实现TodoList页面布局1、在项目中使用Antd2、使用Antd实现TodoList的基本布局3、创建redux中的store(1)创建storeÿ... 查看详情

架构整洁之道,看这一篇就够了!(代码片段)

阿里妹导读:程序的世界飞速发展,今天所掌握的技能可能明年就过时了,但有些知识历久弥新,掌握了它们,你在程序的海洋中就不会迷路,架构思想就是这样的知识。本文是《架构整洁之道》的读书心得,作者将书中内容拆... 查看详情

kotlin的构造函数看这一篇就够了(代码片段)

在kotlin中,一个标准的继承写法是这样的classAA:BB(),你想过没有,为什么AA后面没有括号,而BB后面有呢?Kotlin和Java中有这样两个特性:1.子类继承父类时,需要在构造函数中调用父类的构造函数2.如果... 查看详情

关于el-upload看这一篇就够了(代码片段)

下述源码分析基于Elementv2.15.9版本前提在解析源码之前,先阐述其重点使用的两个基础内容:<inputtype="file">使用type=“file”的元素使得用户可以选择一个或多个元素以提交表单的方式上传到服务器上,... 查看详情