定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

限制:

0 <= 节点个数 <= 5000

注意:本题与主站 206 题相同:https://leetcode-cn.com/problems/reverse-linked-list/

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode reverseList(ListNode head) {if(head.next==null) return head;ListNode last=reverseList(head.next);head.next.next=head;head.next=null;return last;}
}

然而会报错,why???
因为也要判断head==null!!!

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode reverseList(ListNode head) {if(head == null || head.next == null) return head;ListNode last=reverseList(head.next);head.next.next=head;head.next=null;return last;}
}

转看大神思路

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
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;                  // 返回反转链表的头节点}}

剑指 Offer 24. 反转链表相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java

    <LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...

  2. 【LeetCode】剑指 Offer 24. 反转链表

    剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...

  3. 【双100%解法】剑指 Offer 24. 反转链表

    立志用最少的代码做最高效的表达 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: ...

  4. 剑指offer 24. 反转链表

    1.问题描述 输入一个链表的头结点,反转链表后,输出新链表的表头. 2. 解决思路 1)链表是空的:直接返回空的头结点: 2)链表中只有一个结点:直接返回原头结点: 3)链表中有大于2个以上的结点:需 ...

  5. 剑指 Offer 24.反转链表

    题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 题目链接:反转链表 示例: 输入: 1->2->3->4->5->NULL 输出: 5-& ...

  6. Leetcode 剑指 Offer 24. 反转链表 (每日一题 20210823)

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...

  7. 剑指 Offer 24. 反转链表(C语言)

    **定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3- ...

  8. 【算法】剑指 Offer 24. 反转链表

    1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof 定义一个函数,输入一个链表的头节点, ...

  9. 剑指 Offer 24. 反转链表java

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-&g ...

  10. 剑指Offer 24 反转链表

    迭代的思想就是利用pre和cur两个指针,然后逐步向后遍历 # Definition for singly-linked list. # class ListNode: # def __init__( ...

最新文章

  1. POJ 3630 Phone List
  2. python中的点表示什么_Python里面这些点,新手看完之后完全不知道这些点
  3. 手动修改oracle scn号,SCN(系统改变号)
  4. linux 网络设置
  5. 怎么样武直不打_打HPV疫苗期间意外怀孕?怎么办?
  6. 2个字符串相等 swift_Swift快速入门(一)之 Swift基础语法
  7. 解决Xcode在debug时不在断点处停止的方法<转>
  8. nodejs升级命令_又一阵后浪:横空出世的Deno会取代NodeJS吗?
  9. github是干什么的_GitHub排名第一!免费最强“抢票神器”在手,程序员抢票不愁
  10. 联网时浏览器跳出MSN中国网页
  11. 张小龙讲座_微信背后的产品观(20120724)
  12. BA无标度网络的仿真实现
  13. idea返回上一步快捷键无效
  14. latex 大于等于_Latex使用时的小技巧
  15. 数据结构与程序设计——C++语言描述(Data Structures Program Design in C++) by Robert L.Kruse Alexander J.Ryba
  16. Uploadify的用法
  17. maven中druid数据源配置无效的问题和jar包找不到问题(DruidDataSourceFactory爆红问题)
  18. 学习下载MySQL安装配置
  19. 计算机python二级考试时间_每年的计算机二级考试时间是多少?
  20. DOS下读取4GB内存——梁肇新代码分析

热门文章

  1. JZOJ. 5421【NOIP2017提高A组集训10.25】嘟嘟噜
  2. 学做一点吃食烤面包虾粥
  3. oracle教程课件,Oracle入门教程(PPT课件)
  4. 【操作系统】为什么 0.1 + 0.2 不等于 0.3 ?
  5. Ubuntu 误删恢复
  6. ARPG游戏的战斗系统设计
  7. 语雀小记初长成:碎片化信息记录工具
  8. SAP ABAP APO计划订单生产日期调整
  9. 《Docker从入门到实践》
  10. 中国传统的节日(端午节)