码迷,mamicode.com
首页 > 其他好文 > 详细

判断二叉树是否对称的代码

时间:2018-10-15 18:30:23      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:code   treenode   iss   false   二叉树   树节点   return   pre   span   

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

  • 判断一颗二叉树是不是对称的,等价于判断其左右子树是不是镜像对称的
  • 判断镜对称像即判断对称的位置上的元素是不是相等
  • 两个节点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);//判断左右子树
          }
      
      };

       

判断二叉树是否对称的代码

标签:code   treenode   iss   false   二叉树   树节点   return   pre   span   

原文地址:https://www.cnblogs.com/caijiaming/p/9792174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!