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

    思路:要判断一颗二叉树是否对称,要判断一下几点,可以用递归来实现:

    • 判断一颗二叉树是不是对称的,等价于判断其左右子树是不是镜像对称的
    • 判断镜对称像即判断对称的位置上的元素是不是相等
    • 两个节点A和B对称等价于: 
      • 这两个节点上存储的值相等
      • 节点A的左子树节点和节点B的右子树上的节点是对称的
      • 节点A的右子树节点和节点A的左子树上的节点是对称的
      • 看代码:
      • class Solution {
        public:
            bool isTreeSymmertic(TreeNode *pHead1,TreeNode *pHead2)
            {
                if(pHead1==NULL&&pHead2==NULL) return true;//左右子树都为空,肯定是对称的
                if(pHead1==NULL) return false;//一颗为空
                if(pHead2==NULL) return false;
                //判断当前值左右是否相等,判断左子树的左节点和右子树的右节点,判断左子树的右节点和右子树的左节点是否相等,三者缺一不可,一直递归
                return pHead1->val==pHead2->val&&isTreeSymmertic(pHead1->left,pHead2->right)&&isTreeSymmertic(pHead1->right,pHead2->left);
            }
            bool isSymmetrical(TreeNode* pRoot)
            {
                if(pRoot==NULL) return true;//本身就为空肯定是对称的
                return isTreeSymmertic(pRoot->left,pRoot->right);//判断左右子树
            }
        
        };
    当初的梦想实现了吗,事到如今只好放弃吗~
  • 相关阅读:
    [ZZ]asp.net页面生命周期
    [ZZ]关于内存中栈和堆的区别
    我的第一个ASP.NET网页
    服务应用之WEB与WCF使用之见
    WEB服务于WCF服务的技术资料
    常用的Web服务和WCF服务
    笔试面试,几个字解决(原创)
    beij~~~
    Symbian 逐步深入(三)
    More 平台
  • 原文地址:https://www.cnblogs.com/caijiaming/p/9792174.html
Copyright © 2011-2022 走看看