剑指 Offer 24. 反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 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. 反转链表相关推荐
- 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java
<LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...
- 【LeetCode】剑指 Offer 24. 反转链表
剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...
- 【双100%解法】剑指 Offer 24. 反转链表
立志用最少的代码做最高效的表达 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: ...
- 剑指offer 24. 反转链表
1.问题描述 输入一个链表的头结点,反转链表后,输出新链表的表头. 2. 解决思路 1)链表是空的:直接返回空的头结点: 2)链表中只有一个结点:直接返回原头结点: 3)链表中有大于2个以上的结点:需 ...
- 剑指 Offer 24.反转链表
题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 题目链接:反转链表 示例: 输入: 1->2->3->4->5->NULL 输出: 5-& ...
- Leetcode 剑指 Offer 24. 反转链表 (每日一题 20210823)
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...
- 剑指 Offer 24. 反转链表(C语言)
**定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3- ...
- 【算法】剑指 Offer 24. 反转链表
1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof 定义一个函数,输入一个链表的头节点, ...
- 剑指 Offer 24. 反转链表java
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-&g ...
- 剑指Offer 24 反转链表
迭代的思想就是利用pre和cur两个指针,然后逐步向后遍历 # Definition for singly-linked list. # class ListNode: # def __init__( ...
最新文章
- POJ 3630 Phone List
- python中的点表示什么_Python里面这些点,新手看完之后完全不知道这些点
- 手动修改oracle scn号,SCN(系统改变号)
- linux 网络设置
- 怎么样武直不打_打HPV疫苗期间意外怀孕?怎么办?
- 2个字符串相等 swift_Swift快速入门(一)之 Swift基础语法
- 解决Xcode在debug时不在断点处停止的方法<转>
- nodejs升级命令_又一阵后浪:横空出世的Deno会取代NodeJS吗?
- github是干什么的_GitHub排名第一!免费最强“抢票神器”在手,程序员抢票不愁
- 联网时浏览器跳出MSN中国网页
- 张小龙讲座_微信背后的产品观(20120724)
- BA无标度网络的仿真实现
- idea返回上一步快捷键无效
- latex 大于等于_Latex使用时的小技巧
- 数据结构与程序设计——C++语言描述(Data Structures Program Design in C++) by Robert L.Kruse Alexander J.Ryba
- Uploadify的用法
- maven中druid数据源配置无效的问题和jar包找不到问题(DruidDataSourceFactory爆红问题)
- 学习下载MySQL安装配置
- 计算机python二级考试时间_每年的计算机二级考试时间是多少?
- DOS下读取4GB内存——梁肇新代码分析