zoukankan      html  css  js  c++  java
  • LeetCode226翻转二叉树

    题目链接

    https://leetcode-cn.com/problems/invert-binary-tree/

    题解一

    • 递归解法
    • 我写的,不够简洁
    // Problem: LeetCode 226
    // URL: https://leetcode-cn.com/problems/invert-binary-tree/
    // Tags: Tree Recursion
    // Difficulty: Easy
    
    #include <iostream>
    using namespace std;
    
    struct TreeNode{
        TreeNode* left;
        TreeNode* right;
        int val;
        TreeNode(int x):val(x),left(nullptr),right(nullptr){}
    };
    
    class Solution{
    public:
        TreeNode* invertTree(TreeNode* root) {
            // 递归出口,空结点直接返回
            if(root==nullptr)
                return nullptr;
            // 该结点交换左右子树
            TreeNode *temp = root->left;
            root->left = root->right;
            root->right = temp;
            // 递归翻转左右子树
            invertTree(root->left);
            invertTree(root->right);
            return root;
        }
    };
    

    题解二

    • 比我写的简洁一些,交换了最后两步的顺序,特别是利用了二叉树翻转后根结点不变的特点
    // Problem: LeetCode 226
    // URL: https://leetcode-cn.com/problems/invert-binary-tree/
    // Tags: Tree Recursion
    // Difficulty: Easy
    
    #include <iostream>
    using namespace std;
    
    struct TreeNode{
        TreeNode* left;
        TreeNode* right;
        int val;
        TreeNode(int x):val(x),left(nullptr),right(nullptr){}
    };
    
    class Solution{
    public:
        TreeNode* invertTree(TreeNode* root) {
            // 递归出口,空结点直接返回
            if(root==nullptr)
                return nullptr;
            // 递归翻转左右子树
            TreeNode* left = invertTree(root->left);
            TreeNode* right = invertTree(root->right);
            // 该结点交换左右子树
            root->left = right;
            root->right = left;
            return root;
        }
    };
    

    作者:@臭咸鱼

    转载请注明出处:https://www.cnblogs.com/chouxianyu/

    欢迎讨论和交流!


  • 相关阅读:
    c# 中的线程和同步
    Javascript 观察者模式
    连接SQLite 创建ADO.net实体类
    给软件增加注册功能 c#
    log4net 使用步骤
    C# 操作 Excel
    PCL编译历程
    设计模式
    kinect
    eclipse配置servlet错误
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/13377535.html
Copyright © 2011-2022 走看看