35.反转链表

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

思考题:

  • 请同时实现迭代版本和递归版本。
数据范围

链表长度 [0,30]。

样例
复制代码
输入:1->2->3->4->5->NULL

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

1.迭代操作

cpp 复制代码
ListNode* reverseList(ListNode* head) {
        ListNode *prev=nullptr;
        ListNode *cur=head;
        while(cur){
            ListNode *next=cur->next;
            cur->next=prev;
            prev=cur;
            cur=next;
        }
        return prev;
    }

2递归操作

cpp 复制代码
ListNode* reverseList(ListNode* head) {
        if(!head||!head->next)return head;
        ListNode *tail=reverseList(head->next);
        head->next->next=head;
        head->next=nullptr;
        return tail;
    }
相关推荐
一二学长5 分钟前
快速排序(JAVA详细讲解快速排序的四种方式)
数据结构
Dragon_D.5 分钟前
排序算法大全——插入排序
算法·排序算法·c·学习方法
大数据张老师36 分钟前
数据结构——红黑树
数据结构·算法·红黑树
自在极意功。1 小时前
动态规划核心原理与高级实战:从入门到精通(Java全解)
java·算法·动态规划·最优子结构·重叠子问题
文火冰糖的硅基工坊1 小时前
[人工智能-大模型-54]:模型层技术 - 数据结构+算法 = 程序
数据结构·人工智能·算法
Yupureki2 小时前
从零开始的C++学习生活 13:红黑树全面解析
c语言·数据结构·c++·学习·visual studio
2401_876221342 小时前
Euler
c++·数学·算法
Z...........2 小时前
优选算法(滑动窗口)
数据结构·算法
大数据张老师2 小时前
数据结构——平衡二叉树(2)
数据结构
泡泡鱼(敲代码中)3 小时前
数据结构(顺序表和链表)
笔记·学习·算法