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);
        }
    
    };
    
  • 相关阅读:
    配置双jdk
    检测一个页面所用的时间的js
    java发送短信开发,第三方接口方法
    jq的常用事件及其案例
    ajax无法返回视图
    SpringMVC IO 文件上传
    及上一篇linux安装mysql的说明
    centos6.10下安装mysql8.0.16root密码修改的坑
    线程池学习
    数组的分隔
  • 原文地址:https://www.cnblogs.com/bananaa/p/7541814.html
Copyright © 2011-2022 走看看