226. 翻转二叉树 - 力扣(LeetCode)

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root==NULL) return root;
        swap(root->left,root->right);
        invertTree(root->left);
        invertTree(root->right);
        return root;
    }
};

101. 对称二叉树 - 力扣(LeetCode)

class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        if (root == NULL)
            return true;
        return compare(root->left, root->right);
    }
    bool compare(TreeNode* left, TreeNode* right) {
        if (left == NULL && right != NULL)
            return false;
        if (left != NULL && right == NULL)
            return false;
        if (left == NULL && right == NULL)
            return true;
        if (left->val != right->val)
            return false;
        else {
            bool outside = compare(left->left, right->right);
            bool Inside = compare(left->right, right->left);
            return outside && Inside;
        }
    }
};

104. 二叉树的最大深度 - 力扣(LeetCode)

为什么要引出高度呢?

class Solution {
public:
    int GetHi(TreeNode* node){
        if(node==NULL) return 0;
        else 
        return 1+max(GetHi(node->left),GetHi(node->right));

    }
    int maxDepth(TreeNode* root) {
         return GetHi(root);
    }
};

111. 二叉树的最小深度 - 力扣(LeetCode)

 

posted on 2025-11-18 19:38  FAfa_C++  阅读(0)  评论(0)    收藏  举报