JZ24-反转链表
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ #include <cstddef> class Solution { public: //给定一个单链表的头节点,pHead,长度为n,反转该链表后,返回新链表的表头 //思路: //递归方法 //首先判断链表是否为空,还是只有一个元素,如果为空就直接返回 //实例化一个新的链表ans //函数返回值为 链表的引用 ListNode* ReverseList(ListNode* head) { //1、先判断表是否为空,或者只有一个元素 if(head == NULL || head->next == NULL) { return head; } //2、递归调用,实例化一个新的结点 //递归遍历,知道遍历到倒数第二个节点 ListNode * ans = ReverseList(head->next); //让该节点的下一个节点的next指向自己 head->next->next = head; //让自己的next节点指向空 head->next = NULL; return ans; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?