题目链接:https://leetcode.cn/problems/UHnkqh/description/

核心代码

方法一:有返回值的递归

class Solution {public ListNode reverseList(ListNode head) {return recur(head, null);    // 调用递归并返回}private ListNode recur(ListNode cur, ListNode pre) {if (cur == null) return pre; // 终止条件ListNode res = recur(cur.next, cur);  // 递归后继节点cur.next = pre;              // 修改节点引用指向return res;                  // 返回反转链表的头节点}
}

方法二:

public static void ReverseNode(Node node,Node pre){if(node==null) return;Node next=node.next;node.next=pre;ReverseNode(next,node);}

主程序


public class Reverse{public static void ReverseNode(Node node,Node pre){if(node==null) return;Node next=node.next;node.next=pre;ReverseNode(next,node);}static void Print(Node node){System.out.println(node.val);if(node.next!=null)Print(node.next);}public static void main(String[]args){Node q1=new Node(1);Node q2=new Node(2);Node q3=new Node(3);Node q4=new Node(4);Node q5=new Node(5);q1.next=q2;q2.next=q3;q3.next=q4;q4.next=q5;ReverseNode(q1,null);Print(q5);}
}

类定义

public class Node{int val;Node next;Node(int val){this.val=val;}Node(){}Node(int val,Node next){this.val=val;this.next=next;}public void setNext(Node next){this.next=next;}Node getNext(){return next;}
}

Java单链表递归逆置相关推荐

  1. (二十四) 单链表的逆置(java)

    前言:单链表的逆置总是看完博客,当时懂了过一段时间就忘了,还是动手写一下加深一下印象吧. 参考博客:点击打开链接 demo地址:我的github 1. 单链表 先写一个简单的单链表,改写一下它的toS ...

  2. java实现单链表就地逆置,单链表的就地逆置讲解

    { List *q; List *p = L->next; L -> next = NULL; //单链表就地逆置 while (p != NULL) { q = p -> next ...

  3. java实现单链表就地逆置,20. 微软面试题:单链表就地逆放

    题目是:链表操作,单链表就地逆置 分析: 这题只需要设置三个指针就搞定了,ListNode* p 表示当前指针, ListNode* fp: 上一个节点指针, ListNode * ep :下一个节点 ...

  4. C语言实现单链表的逆置

          单链表的逆置是一个非常经典的问题,这里利用两个思想进行解决.       首先,我们需要看下原理图,其实两个思想都是一样的,都是使后一个的节点的 next 指针指向前一个节点,依次递推,直 ...

  5. 单链表的逆置-C++实现(ok)

    对于单链表的逆置有两种方法可以实现: (1)利用辅助指针 基本思想:在遍历结点过程中,设置辅助指针,用于记录先前遍历的结点.这样依次编译的过程中只需修改其后继结点的next域即可. 实现代码: [cp ...

  6. 头插法逆置单向链表c语言,单链表的逆置(头插法和就地逆置)

    今天课间的时候偶然看到了一个面试题:单链表的逆置,看了题解感觉乖乖的,貌似和以前看的版本不搭,于是重新进行了一番探究 单链表的逆置分为两种方法:头插法和就地逆置法,这两种方法虽然都能够达到逆置的效果, ...

  7. 【AU】单链表就地逆置

    单链表就地逆置 单链表的就地逆置是指辅助空间O(1)的逆置方法,有两种方法: 第一种 普通循环(头插法重新建立带头节点的新链表) 将头结点摘下,然后从第一结点开始,依次前插入到头结点的后面(头插法), ...

  8. 无头结点单链表的逆置_单链表的增删查 逆置 倒数第k个节点等问题

    对于单链表而言,它没有双链表那么复杂,它只有头节点,尾节点,节点数据,后继指针.在下面本人实现了 单链表的 增   删   插  查  改. #include #include #include #i ...

  9. 无头结点单链表的逆置_第1章第2节练习题11 就地逆置单链表

    ## 问题描述 > 试编写在带头结点的单链表就地逆置,所谓"就地"是指辅助空间为O(1) ## 算法思想1 > 将头结点摘下,然后从第一个结点开始,依次插入到头节点的后 ...

最新文章

  1. maven2学习总结(1,入门起步与实践)
  2. 生产订单成本的计划、控制和结算
  3. Redis分布式锁加时效和不加时效两种方案的最全代码实现
  4. [pytorch、学习] - 5.7 使用重复元素的网络(VGG)
  5. 消息队列 应用场景 解析
  6. Java 12 将于3月19日发布,8 个最终 JEP 一览
  7. php管道的概念,让你的php命令行程序处理管道数据
  8. 【课题总结】OpenCV 抠图项目实战(6)色彩范围抠图
  9. angularjs控制器controller
  10. 最全元素水平垂直居中方法
  11. oracle通过dblink连接mysql配置详解(全Windows下)
  12. 使数据可供ArcGIS Server访问
  13. java高级-反射的三种实例化模式及与工厂,单例模式的的关系
  14. python打印索引序号_打印带有索引的矩阵python
  15. NCC项目搭建及版本管理规范手册
  16. 网络发现不了其他计算机,win10网络发现不了其他电脑怎么办_win10网络里找不到其他电脑如何处理...
  17. 「How The Economic Machine Works」《经济机器是如何运转的》中文字幕
  18. 基于transformor的拼音转汉字语言模型。
  19. [堆入门off-by-null]asis2016_b00ks
  20. 力扣刷题 DAY_71 回溯

热门文章

  1. 图片去水印软件分享!这三个好用的软件不能错过!​
  2. 先掌握这 19 个 css 技巧,解决一些疑难杂症
  3. 北京市211学校计算机专业,北京较容易考的2所211大学,王牌专业实力强悍,学生不愁就业...
  4. 关于LPC21**系列串口初始化已知晶振频率 求U0DLL和U0DLM 重点注意M P 和分频倍率n
  5. 华工历次数学实验源代码
  6. Github 上 lux 下载神器的安装及使用教程
  7. adb shell appops(系统服务:appops)
  8. Python使用天气网api接口获取天气数据
  9. 复利单利计算0318
  10. 计算机组成原理实验报告 算术逻辑单元ALU实验(源代码全)