zoukankan      html  css  js  c++  java
  • 判断二叉树是否对称

    class Solution {
    public:
        /*
        对于一颗二叉树,从根节点开始遍历
        如果左右节点有一个为NULL,那么肯定不是对称二叉树
        如果左右子节点均不为空,但不相等,那么肯定不是对称二叉树
        如果左右子节点均不为空且相等,那么:
            遍历左子树,遍历顺序为,当前节点,左子树,右子树
            遍历右子树,遍历顺序为,当前节点,右子树,左子树
        如果遍历左子树的序列和遍历右子树的序列一样,则称该二叉树为对称二叉树
    
        */
        bool isSymmetrical(TreeNode* pRoot)
        {
            if(pRoot==NULL)
                return true;
            return isMirror(pRoot->left,pRoot->right);
        }
    
        bool isMirror(TreeNode *pLeft,TreeNode *pRight){
            if(pLeft==NULL&&pRight==NULL)
                return true;
            if(pLeft==NULL||pRight==NULL)
                return false;
            if(pLeft->val!=pRight->val)
                return false;
            return isMirror(pLeft->left,pRight->right)&&isMirror(pLeft->right,pRight->left);
        }
    
    };
    class Solution {
    public:
        /*
        对于一颗二叉树,从根节点开始遍历
        如果左右节点有一个为NULL,那么肯定不是对称二叉树
        如果左右子节点均不为空,但不相等,那么肯定不是对称二叉树
        如果左右子节点均不为空且相等,那么:
            遍历左子树,遍历顺序为,当前节点,左子树,右子树
            遍历右子树,遍历顺序为,当前节点,右子树,左子树
        如果遍历左子树的序列和遍历右子树的序列一样,则称该二叉树为对称二叉树
    
        */
        bool isSymmetrical(TreeNode* pRoot)
        {
            if(pRoot==NULL)
                return true;
            return isMirror(pRoot->left,pRoot->right);
        }
    
        bool isMirror(TreeNode *pLeft,TreeNode *pRight){
            if(pLeft==NULL&&pRight==NULL)
                return true;
            if(pLeft==NULL||pRight==NULL)
                return false;
            if(pLeft->val!=pRight->val)
                return false;
            return isMirror(pLeft->left,pRight->right)&&isMirror(pLeft->right,pRight->left);
        }
    
    };
    
  • 相关阅读:
    Android下的多线程
    01背包问题
    用锐捷使你的笔记本成为WIFI基站,让其他电脑还有我们的手机使用无线上网吧
    如何在eclipse的android工程中添加外部javadoc.jar包,方便开发
    umask函数的用处
    支持我一下吧!
    ios越狱内购提示Environment:Sandbox
    plt_System_Security_Cryptography_HMAC_KeySetup_byte___byte
    蛋疼的时候写三消游戏(十二)
    cocos2dx做游戏(搭建环境)
  • 原文地址:https://www.cnblogs.com/bananaa/p/7541814.html
Copyright © 2011-2022 走看看