🧩Algo 二叉树

101. 对称二叉树

难度:🟢 Easy | 标签:树、递归 | 状态:⬜ LeetCode 链接

思路

辅助函数比较两棵子树是否镜像:

  • 都空 → true
  • 一空一非空 → false
  • 值相等且 a->left == b->right && a->right == b->left

代码

class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        return !root || isMirror(root->left, root->right);
    }
private:
    bool isMirror(TreeNode* a, TreeNode* b) {
        if (!a && !b) return true;
        if (!a || !b) return false;
        return a->val == b->val
            && isMirror(a->left, b->right)
            && isMirror(a->right, b->left);
    }
};

复杂度

  • 时间 O(n),空间 O(h)

易错 / 回顾

  • 递归参数是两棵子树而不是单棵
  • 迭代版用队列两两入:左外右外、左内右内
Related · 二叉树