您的位置:首页 > 编程语言 > C语言/C++

#LeetCode# #C++# Symmetric Tree

2015-10-01 20:49 239 查看
给一个二叉树,检查它是否以根节点镜面对称。

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);
    }
};




方法二:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息