剑指 Offer 28. 对称的二叉树
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1 / \ 2 2 / \ / \ 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1 / \ 2 2 \ \ 3 3
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
限制:
0 <= 节点个数 <= 1000
| 思路:递归 |
class Solution {
public:
bool isSymmetric(TreeNode* root) {
if(!root) return true;
return isOK(root->left,root->right);
}
bool isOK(TreeNode* p,TreeNode* q){
if(!p and !q) return true;
else if(!p or !q) return false;
else if(p->val != q->val) return false;
return isOK(p->left,q->right) and isOK(p->right,q->left);
}
};
博客围绕剑指 Offer 28 题,即判断一棵二叉树是否对称展开。若二叉树和其镜像一样则为对称,还给出了对称与非对称二叉树的示例,如 [1,2,2,3,4,4,3] 对称,[1,2,2,null,3,null,3] 不对称。
524

被折叠的 条评论
为什么被折叠?



