(前序 简单)leetcode 226翻转二叉树

代码随想录说用前序遍历和后序遍历方便,而中序遍历比较绕。

活用自定义函数使程序结构更为清晰

这里用的是前序遍历,根结点root指向left和root,交换root的左右指向

执行过程:

也就是交换下例的 2 ,7

使得交换后,2后面指向的结点跟着到右边去了,7后面指向的左右结点跟着到左边的结点去了。

(突然想到可以做剪枝,遇到叶子结点就直接回溯。)

再交换2 后面的左右结点

7交换后面的左右结点

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        bitree(root);
return root;
    }
    void bitree(TreeNode *root)
    {
        if(root==NULL)
        return ;
        sweap1(root,root->left,root->right);
        bitree(root->left);
        bitree(root->right);
        
        


    }
    void sweap1(TreeNode *root,TreeNode *left,TreeNode *right)
{
    TreeNode *t=new TreeNode;
    t=right;
root->right=root->left;
root->left=t;

}

};
相关推荐
数模竞赛Paid answer9 小时前
2026年中青杯数学建模A题数学建模论文智能评估系统与多智能体优化方法求解全过程论文及程序
算法·数学建模·中青杯
银-豆豆9 小时前
数据结构与算法-动态规划、回溯与贪心
算法·动态规划
JL159 小时前
面试项目被问到自闭-如何把课设包装成亮眼项目
面试·职场和发展
想吃火锅100511 小时前
【leetcode】200. 岛屿数量
算法·leetcode·职场和发展
Nil20811 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
依然鸣12 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
qeen8715 小时前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法
lucas_AI15 小时前
1.2B 小模型赢过 235B 大模型:NaviDC-OCR 把文档解析卷明白了
人工智能·深度学习·算法
冻柠檬飞冰走茶16 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法