天天一道算法题【蓝桥杯】【反转链表的递归实现】

打印 上一主题 下一主题

主题 929|帖子 929|积分 2787


思绪

reservelist(head->next)能够完成头结点背面的反转链表
返回新的头结点
直接深度搜索
  1. #define _CRT_SECURE_NO_WARNINGS 1
  2. #include<iostream>
  3. using namespace std;
  4. struct ListNode {
  5.       int val;
  6.      ListNode *next;
  7.      ListNode() : val(0), next(nullptr) {}
  8.      ListNode(int x) : val(x), next(nullptr) {}
  9.     ListNode(int x, ListNode *next) : val(x), next(next) {}
  10.   };
  11. class Solution {
  12. public:
  13.     ListNode* reverseList(ListNode* head) {
  14.         if (head == NULL || head->next == NULL)   return head;   //后序遍历,当到链表末端的时候直接返回
  15.         ListNode* newhead = reverseList(head->next);       //相信这个函数一定能够完成后面的链表反转的操作,返回新的头结点
  16.         head->next->next = head;        //当前节点逆置后面的链表,
  17.         head->next = NULL;           
  18.         return newhead;
  19.     }
  20. };
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表