(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;
    } }

`
## 思路
这道题感觉没必要讲啥思路了,最经典最基础数据结构链表翻转的两个方法,能理解就好,不能理解背就完了!!
相关推荐
dazzle41 分钟前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵42 分钟前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
张张努力变强1 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发1 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
wWYy.1 小时前
数组快排 链表归并
数据结构·链表
张登杰踩1 小时前
MCR ALS 多元曲线分辨算法详解
算法
YuTaoShao1 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
波波0071 小时前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
风暴之零2 小时前
变点检测算法PELT
算法
深鱼~2 小时前
视觉算法性能翻倍:ops-cv经典算子的昇腾适配指南
算法·cann