(leetcode)力扣100 23反转链表(迭代||递归)

题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

数据范围

链表中节点的数目范围是 [0, 5000]

-5000 <= Node.val <= 5000

测试用例

示例1

java 复制代码
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例2

java 复制代码
输入:head = [1,2]
输出:[2,1]

示例3

java 复制代码
输入:head = []
输出:[]

题解1(时间On空间O1)

java 复制代码
/**
 * 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 pre=null;
        ListNode cur=head;
        while(cur!=null){
            ListNode next= cur.next ;
            cur.next=pre;
            pre=cur;
            cur=next;    
        }
        return pre;
    }
}

题解2(时空On)

java 复制代码
    public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode newHead = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return newHead;
    } }

`
## 思路
这道题感觉没必要讲啥思路了,最经典最基础数据结构链表翻转的两个方法,能理解就好,不能理解背就完了!!
相关推荐
Kx_Triumphs几秒前
计算几何-旋转卡壳两种实现方案(兼P1452题解
算法·题解
代码游侠4 分钟前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
m0_7369191043 分钟前
C++中的享元模式变体
开发语言·c++·算法
罗湖老棍子1 小时前
【 例 1】石子合并(信息学奥赛一本通- P1569)
数据结构·算法·区间dp·区间动态规划·分割合并
wangluoqi1 小时前
26.2.4练习总结
算法
流㶡1 小时前
逻辑回归实战:从原理到不平衡数据优化(含欠拟合/过拟合诊断与召回率提升)
算法·机器学习·逻辑回归
Tisfy1 小时前
LeetCode 3637.三段式数组 I:一次遍历(三种实现)
算法·leetcode·题解·模拟·数组·遍历·moines
遨游xyz1 小时前
数据结构-哈希表
算法·哈希算法
dyyx1112 小时前
C++中的过滤器模式
开发语言·c++·算法
lrh1228002 小时前
详解决策树算法:分类任务核心原理、形成流程与剪枝优化
算法·决策树·机器学习