题解 | #对称的二叉树#

对称的二叉树

http://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb

对称二叉树判断

思路:利用先序依次判读左树和右树。左树是(根左右遍历),右树是(根右左遍历),三种情况

	左右树根节点都为空,返回true
    左空右不为空或右空左不为空 返回false
    左右值不等false,相等时继续判断后序节点。
/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
class Solution {
public:
    bool isSymmetrical(TreeNode* pRoot) {
        if(!pRoot)return true;
        return check(pRoot->left, pRoot->right);
    }
    bool check(TreeNode* l,TreeNode* r){
        if(!l && !r)return true;
        if(!l && r || !r && l)return false;
        if(l->val != r->val)
            return false;
        else
           return  check(l->left, r->right) && check(l->right, r->left);
    }

};
全部评论

相关推荐

05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
没有offer的呆呆:薪资有的时候也能说明一些问题,太少了活不活得下去是一方面,感觉学习也有限
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务