🧩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 · 二叉树