小小小幸运 发表于 2025-3-11 22:37:34

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

https://i-blog.csdnimg.cn/direct/3d9a563478de45eaabdf2337c6e8d759.png
思绪

reservelist(head->next)能够完成头结点背面的反转链表
返回新的头结点
直接深度搜索
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

struct ListNode {
      int val;
   ListNode *next;
   ListNode() : val(0), next(nullptr) {}
   ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode *next) : val(x), next(next) {}
};

class Solution {
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;
    }
};

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 天天一道算法题【蓝桥杯】【反转链表的递归实现】