【双100%解法】剑指 Offer 24. 反转链表
立志用最少的代码做最高效的表达
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL限制:
0 <= 节点个数 <= 5000
理解链表最好的方法,就是在草稿纸上画下来手推!
***
代码展示
/*** 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) return head; // 空链表if(head.next == null) return head; // 链表长度为1ListNode pre = null, cur = head, nex; // 注意鲁棒性boolean flag = true;while(cur != null) { // 当cur为null时,pre正好处于尾结点, 且当cur为null时,所有节点正好全部倒置nex = cur.next;cur.next = pre;pre = cur;cur = nex;}return pre;}
}
完整可运行代码
public class 剑指Offer24_反转链表 {static class ListNode{int val;ListNode next;ListNode(int v) { val = v; }}static class Solution{public ListNode reverseList(ListNode head) {if(head == null) return head; // 空链表if(head.next == null) return head; // 链表长度为1ListNode pre = null, cur = head, nex; // 注意鲁棒性boolean flag = true;while(cur != null) { // 当cur为null时,pre正好处于尾结点, 且当cur为null时,所有节点正好全部倒置nex = cur.next;cur.next = pre;pre = cur;cur = nex;}return pre;}}public static void main(String[] args) {ListNode l1 = new ListNode(1);ListNode l2 = new ListNode(2);ListNode l3 = new ListNode(3);ListNode l4 = new ListNode(4);l1.next = l2;l2.next = l3;l3.next = l4;Solution solution = new Solution();ListNode l = solution.reverseList(l1);System.out.println(l.val + " " + l.next.val + " " + l.next.next.val);}
}
木秀于林,风必摧之;堆出于岸,流必湍之;行高于人,众必非之。
【双100%解法】剑指 Offer 24. 反转链表相关推荐
- 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java
<LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...
- 【LeetCode】剑指 Offer 24. 反转链表
剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...
- 剑指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__( ...
最新文章
- BeanShell中的Java指令和表达式
- 奇异值的物理意义是什么?强大的矩阵奇异值分解(SVD)及其应用
- 减少过敏反应的生活细节
- Linux下root密码丢失和运行级别错误的解决办法
- java异常体系_JAVA异常体系结构详解
- python eval函数格式_Python函数中eval函数知识点
- Initialization of bean failed; nested exception is org.springframework.beans.factory.: 错误分析
- 深度学习经典算法 | 蚁群算法解析
- linux中的 127.0.0.1和0.0.0.0和::
- 七个月自学进微软——我的编程算法学习心得
- ARM V8 SPEC B1 AArch64 Application level programer‘s Model
- 产品流程、开发流程、测试流程、运维流程、售前流程改进建议
- Django创建超级管理员用户
- python中从键盘输入五个单词输出以元音字母开头的单词_matlab中 从一个文本读出所有英文单词,并且把所有以元音字母开头的字母首字母 的代码怎么写...
- Maxent影响因子响应曲线重绘
- windows10 扩容C盘空间
- Dbeaver_ee使用mysql和mongodb
- 实用解析dmp文件内容
- oracle主键必须加分区字段,oracle分区表和主键关系
- 数据结构查找-7-7 词典 (15 分)