题解 | #对称的二叉树#

对称的二叉树

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

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
class Solution {
public:
    //左子树根左右,右子树根右左
    //增加不存在的值为虚结点
    int temp = 1010;
    vector<int> vl, vr;
    bool flag = true;
    void Ltraverse(TreeNode* pRoot)
    {
        if(pRoot == NULL) return;
        vl.push_back(pRoot->val);
        if(pRoot->left!=NULL){
            Ltraverse(pRoot->left);
        }else{
            vl.push_back(temp);
        }
        if(pRoot->right!=NULL){
            Ltraverse(pRoot->right);
        }else{
            vl.push_back(temp);
        }
    }
    void Rtraverse(TreeNode* pRoot)
    {
        if(pRoot == NULL) return;
        vr.push_back(pRoot->val);
        if(pRoot->right!=NULL){
            Rtraverse(pRoot->right);
        }else{
            vr.push_back(temp);
        }
        if(pRoot->left!=NULL){
            Rtraverse(pRoot->left);
        }else{
            vr.push_back(temp);
        }
    }
    bool isSymmetrical(TreeNode* pRoot) {
        if(pRoot == NULL) return true;
        Ltraverse(pRoot->left);
        Rtraverse(pRoot->right);
        if(vl.size() != vr.size())
            return false;
        for(int i = 0; i < vl.size(); i++)
        {
            if(vl[i] != vr[i])
            {
                flag = false;
                break;
            }
        }
        return flag;
    }
};
全部评论

相关推荐

CARLJOSEPH...:宝宝你戾气太大了
点赞 评论 收藏
分享
07-03 16:02
门头沟学院 Java
今天面试,非常紧张,面试官问我springboot有哪些核心模块都答不上来了,真的对自己无语了!
程序员小白条:28届我勒个去,很多人面试都没机会
查看1道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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