letcode 分类练习 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度
226.翻转二叉树
利用自底向上的遍历交换左子树和右子树
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(!root) return nullptr;
TreeNode* left = invertTree(root->left);
TreeNode* right = invertTree(root->right);
root -> left = right;
root -> right = left;
return root;
}
};
101. 对称二叉树
如果是叶子结点返回true,左子树不等于右子树就返回false,然后递归看左子树和右子树也是否满足条件
class Solution {
public:
bool check(TreeNode* left,TreeNode* right){
if((left && !right) || (!left && right) || (left && right && left->val != right -> val))return false;
if(!left && !right) return true;
return check(left -> left,</