(前序 简单)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;

}

};
相关推荐
HXDGCL8 分钟前
矩形环形导轨:自动化循环线的核心运动单元解析
运维·算法·自动化
谭欣辰19 分钟前
C++ 排列组合完整指南
开发语言·c++·算法
代码中介商33 分钟前
银行管理系统的业务血肉 —— 流程、状态机、输入校验与持久化(下篇)
c语言·算法
foundbug9991 小时前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab
童园管理札记2 小时前
【续】数字时代:学前教育的新改革
经验分享·深度学习·职场和发展·微信公众平台
CN-Dust3 小时前
【C++】while语句例题专题
数据结构·c++·算法
灵智实验室3 小时前
PX4位置速度估计技术详解(四):LPE 激光雷达高度融合的实现错误
算法·无人机·px 4
CQU_JIAKE3 小时前
【A】3742,3387,并查集
算法
gihigo19983 小时前
CHAN时延估计算法(二维/三维定位实现)
算法
freexyn4 小时前
Matlab自学笔记七十六:表达式的展开、因式分解、化简、合并同类项
笔记·算法·matlab