leetcode-二叉树的镜像-91

题目要求

思路1

1.遍历一遍二叉树,将左边的结点对应创建一个右边的结点

2.用此方法空间复杂度O(n),并不是最优
思路2

1.将一个结点的左右子树进行交换,如果左子树还有左右结点,就再交换左子树的左右结点,以此递归下去。

2.用此方法的空间复杂度是O(1),不需要创建新的结点

代码实现

cpp 复制代码
/**
 * struct TreeNode {
 *      int val;
 *      struct TreeNode *left;
 *      struct TreeNode *right;
 *      TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param pRoot TreeNode类
     * @return TreeNode类
     */
    TreeNode* Mirror(TreeNode* pRoot) {
        // write code here
        if (pRoot == nullptr)
            return nullptr;

        TreeNode* head = new TreeNode(pRoot->val);
        head->left = Mirror(pRoot->right);
        head->right = Mirror(pRoot->left);

        return head;
    }
};


/**
 * struct TreeNode {
 *      int val;
 *      struct TreeNode *left;
 *      struct TreeNode *right;
 *      TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
#include <cstdio>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param pRoot TreeNode类 
     * @return TreeNode类
     */
    TreeNode* Mirror(TreeNode* pRoot) {
        // write code here
        if(pRoot != nullptr)
        {
            TreeNode* temp = pRoot->left;
            pRoot->left = pRoot->right;
            pRoot->right = temp;

            Mirror(pRoot->left);
            Mirror(pRoot->right);
        }
        return pRoot;
    }
};
相关推荐
A尘埃2 分钟前
超市购物篮关联分析与货架优化(Apriori算法)
算法
.小墨迹9 分钟前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
不穿格子的程序员20 分钟前
从零开始刷算法——贪心篇1:跳跃游戏1 + 跳跃游戏2
算法·游戏·贪心
大江东去浪淘尽千古风流人物22 分钟前
【SLAM新范式】几何主导=》几何+学习+语义+高效表示的融合
深度学习·算法·slam
铉铉这波能秀30 分钟前
LeetCode Hot100数据结构背景知识之列表(List)Python2026新版
数据结构·leetcode·list
重生之我是Java开发战士36 分钟前
【优选算法】模拟算法:替换所有的问号,提莫攻击,N字形变换,外观数列,数青蛙
算法
仟濹42 分钟前
算法打卡 day1 (2026-02-06 周四) | 算法: DFS | 1_卡码网98 可达路径 | 2_力扣797_所有可能的路径
算法·leetcode·深度优先
yang)42 分钟前
欠采样时的相位倒置问题
算法
千寻girling43 分钟前
主管:”人家 Node 框架都用 Nest.js 了 , 你怎么还在用 Express ?“
前端·后端·面试
历程里程碑1 小时前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法