啊好久没更文了,前两天状态不太好。还是要坚持更文敲题噢!

文章目录

  • 题目描述
  • 思路 & 代码

题目描述

  • 面试高频题,需要会用两种方法解决!(迭代 and 递归)
  • 其实先写出迭代,递归就不难写了。

思路 & 代码

  • 先来个迭代!
  • 总体思路就是保存下一个结点temp,对当前结点进行转向,下一轮又从temp开始。
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {ListNode now = head;ListNode pre = null;// 迭代法while(now != null){ListNode temp = now.next;now.next = pre;pre = now;now = temp;}return pre;}
}
  • 递归法:和迭代差不多,传入的参数就是temp
  • 每次都返回下一个结点,最终就能返回更新成头结点的旧尾结点。
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/// 递归做法
class Solution {public ListNode reverseList(ListNode head) {return reverse(head, null);}  public ListNode reverse(ListNode head, ListNode pre) {if(head == null) {return pre;}ListNode next = head.next;head.next = pre;return reverse(next, head);}
}

【LeetCode笔记】206. 反转链表(Java、迭代、递归、链表)相关推荐

  1. 【LeetCode】【HOT】206. 反转链表(迭代/递归)

    [LeetCode][HOT]206. 反转链表 文章目录 [LeetCode][HOT]206. 反转链表 package hot;import java.util.Arrays;class Lis ...

  2. LeetCode Algorithm 206. 反转链表

    206. 反转链表 Ideas 关于链表的题目其实画个图就很清晰了. 可以想象成两个部分,左边是已经完成翻转的链表,以pre为头结点,右边是还未翻转的链表,以cur为头结点,每次获取cur的下一个结点 ...

  3. 反转链表JAVA算法_链表反转算法

    1 packagecom.trs.codetool.sort;2 3 /** 4 *@authorzheng.changgang5 * @date 2020-01-02 09:576 * 链表的常见算 ...

  4. 【LeetCode笔记】25. K个一组翻转链表(Java、链表、递归)

    文章目录 题目描述 思路 & 代码 更新 - 精简版 三刷 - 再更新版 题目描述 审题很重要..一开始以为是一组换两个,但是实际上是一组全部都要互换. 字节超高频题!要认真点记录 思路 &a ...

  5. leetcode系列-206.反转链表

    leetcode系列–第206题.反转链表 这道题很经典 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3 ...

  6. 【LeetCode】206. 反转链表

    链接:https://leetcode-cn.com/problems/reverse-linked-list/ 题目描述 反转一个单链表. 示例 输入: 1->2->3->4-&g ...

  7. 005 反转单链表(迭代递归)

    输入一个链表,反转链表后,输出新链表的表头. 1.迭代法 迭代法的关键在于用pNext记录当前节点pNode的下一节点的值,否则它在迭代过程时会被丢失. 2.递归法 类似于栈的概念,先递归到最后的节点 ...

  8. LeetCode笔记】剑指 Offer 35. 复杂链表的复制(Java、哈希表、原地算法)

    文章目录 题目描述 思路 && 代码 1. 哈希表法 2. 原地算法 二刷 题目描述 主要有两个考虑点: 不能改变原链表 新链表赋予 next.random 时,复制结点不一定存在 思 ...

  9. LeetCode:206. 反转链表

  10. 《LeetCode力扣练习》第206题 反转链表 Java

    <LeetCode力扣练习>第206题 反转链表 Java 一.资源 题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2, ...

最新文章

  1. 第二百五十天 how can I 坚持
  2. 1028 List Sorting
  3. 操作系统开发系列—13.g.操作系统的系统调用 ●
  4. 《Programming WPF》翻译 第9章 6.我们进行到哪里了?
  5. ORACLE union order by
  6. 红帽Linux故障定位技术详解与实例(1)
  7. .NET CORE 多语言实现方案
  8. Shell编程 之 while循环 和 until循环 和 总结
  9. BZOJ2809:[Apio2012]dispatching——题解
  10. python time用法
  11. CommandName属性简介
  12. 2.70-写出具有如下原型的函数的代码:
  13. 教你如何发布自己的网站
  14. 命令行看不见光标怎么办
  15. 网上书城项目的需求分析、数据库表设计及前端界面的编写(项目进度一)
  16. 如何在linux的gcc中添加c语言的外部链接库(“比如说,math.h
  17. context menu
  18. 公安部:不断提升我国网络安全和数据安全保护能力 保护数字经济发展
  19. 王晋康 - 养蜂人·王晋康科幻小说精选集1(2014年2月4日)
  20. 分享77个HTMLCSS源码,总有一款适合您

热门文章

  1. 计算机仿真在机械行业中的应用,计算机仿真技术机械行业应用
  2. )类 新建javafx程序时_第三章 第一个OpenCV的JavaFX应用程序.md
  3. C++ multimap的插入
  4. pandas取某一索引的数据
  5. Fashion-MNIST下载地址
  6. duilib中的添加自定义控件
  7. Fiddler (二) : Script 的 用法
  8. HTTP 相应头相关
  9. Struts2源码阅读(五)_FilterDispatcher核心控制器
  10. android zip文件读写,如何直接从.zip文件中读取文件而不在android中提取它