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

}

};
相关推荐
ANYOLY4 小时前
分布式面试题库
分布式·面试·职场和发展
程序员小远5 小时前
软件测试之单元测试详解
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
程序员东岸6 小时前
《数据结构——排序(中)》选择与交换的艺术:从直接选择到堆排序的性能跃迁
数据结构·笔记·算法·leetcode·排序算法
程序员-King.6 小时前
day104—对向双指针—接雨水(LeetCode-42)
算法·贪心算法
神仙别闹6 小时前
基于C++实现(控制台)应用递推法完成经典型算法的应用
开发语言·c++·算法
Ayanami_Reii6 小时前
进阶数据结构应用-一个简单的整数问题2(线段树解法)
数据结构·算法·线段树·延迟标记
listhi5207 小时前
基于改进SET的时频分析MATLAB实现
开发语言·算法·matlab
Keep_Trying_Go8 小时前
基于Zero-Shot的目标计数算法详解(Open-world Text-specified Object Counting)
人工智能·pytorch·python·算法·多模态·目标统计