算法记录Day 15 | 二叉树 part02

35 阅读1分钟

算法记录Day 15 | 二叉树 part02

LeetCode 226.翻转二叉树

题目链接:leetcode.cn/problems/in…

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

LeetCode 101. 对称二叉树

题目链接:leetcode.cn/problems/sy…

题解
class Solution {
   public:
    bool isSymmetric(TreeNode* root) {
        if (root == nullptr) {
            return true;
        }
        return helper(root->left, root->right);
    }

    bool helper(TreeNode* left, TreeNode* right) {
        if (left == nullptr && right == nullptr) {
            return true;
        }
        if (left == nullptr || right == nullptr || left->val != right->val) {
            return false;
        }
        return helper(left->left, right->right) &&
               helper(left->right, right->left);
    }
};