给一个二叉树,检查它是否以根节点镜面对称。
Note:
分别用递归和迭代实现。
方法一: 递归,左右挨个比较。
1.判断两个根节点root1、root2是否为空
2.判断root1、root2的val是否不等
3.判断root1->left、root2->right 和 root1->right、root2->left 的val是否不等
Status: Accepted
Runtime: 4 ms
class Solution {
public:
bool isMirror(TreeNode* root1, TreeNode* root2){
if(root1 == NULL && root2 == NULL) return true;
if(root1 == NULL || root2 == NULL || root1->val != root2->val) return false;
return isMirror(root1->left, root2->right) && isMirror(root1->right, root2->left);
}
bool isSymmetric(TreeNode* root) {
return isMirror(root, root);
}
};
方法二: