判断一颗二叉树是否对称

金士顿 2018-12-06 11:08:09 1097 收藏

分类专栏: 数据结构和算法

            </div></div><div class="up-time"><span>最后发布:2018-12-06 11:08:09</span><span>首发:2018-12-06 11:08:09</span></div><div class="slide-content-box"><div class="all-tags-box"></div></div><div class="operating"></div></div></div>
</div>
<!--python安装手册结束--><article class="baidu_pl"><div id="article_content" class="article_content clearfix"><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-211130ba7a.css"><div class="htmledit_views" id="content_views"><p>版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012311410/article/details/71108475<br>

1.题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的.

二叉树结构:

struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};

2.基本思路

判断一颗二叉树是不是对称的,等价于判断其左右子树是不是镜像对称的
    判断镜对称像即判断对称的位置上的元素是不是相等
    两个节点A和B对称等价于:
        这两个节点上存储的值相等
        节点A的左子树节点和节点B的右子树上的节点是对称的
        节点A的右子树节点和节点A的左子树上的节点是对称的

3.代码

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;
        bool res=isTreeSymmertic(pRoot->left,pRoot->right);
        return res;
    }
---------------------  
作者:douniwanli  
来源:CSDN  
原文:https://blog.csdn.net/u012311410/article/details/71108475  
版权声明:本文为博主原创文章,转载请附上博文链接!

学习笔记:验证对称二叉树相关推荐

  1. 数据结构与算法学习笔记-树和二叉树

    声明:本博客仅为本人学习途中做的笔记 采自青岛大学王卓老师的视频教学 主要内容为算法思路,具体代码实现还需修改后才能运行,望各位看官多多包涵,您的点赞与评论是对我最大的肯定! 1.树和二叉树的定义 数 ...

  2. FMS Dev Guide学习笔记(验证客户端)

    一.开发交互式的媒体应用程序 1.使用客户端对象的属性     当一个客户端连接上服务器上的一个应用,服务端就会创建一个包含这个客户端信息的客户端对象并且将它传递给application.onConn ...

  3. SPSS学习笔记——验证性因子分析

    预分析: 1.先把标准差<0.75,接近于0.75的题目删 掉 2.做信度分析--分维度做 [分析]- [度量]- [可靠性分析] 描述性的都要选[项][度量][如果项已删除则进行度量] 删除与 ...

  4. APS.NET_MVC5学习笔记-验证编辑方法(Edit method)和编辑视图(Edit view)

    在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie ...

  5. python二叉树最大深度的计算_Python学习笔记24(二叉树遍历、最大深度、最大宽度)...

    classNode(object):"""节点类""" def __init__(self,elem=-1,lchild=None,rchi ...

  6. 冰冰学习笔记:二叉树的进阶OJ题与非递归遍历

    欢迎各位大佬光临本文章!!! 还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正. 本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位大佬.帅哥.美女点点支 ...

  7. 转载学习笔记:c++atoi

    c++中的atoi()和stoi()函数的用法和区别 鸡啄米的时光机 2018-08-27 20:58:41 28304 收藏 28 最后发布:2018-08-27 20:58:41首发:2018-0 ...

  8. 【学习笔记】【C++】【Leetcode 分门别类讲解】

    目录 概述 一.时间复杂度分析 二.数组问题 1.参考练习题- 双指针-对撞指针 2.双索引技术-滑动窗口 三.查找问题-查找表 1.参考练习题 - 集合与映射 2.set 和 map 2.滑动窗口 ...

  9. 冰冰学习笔记:二叉树的功能函数和OJ练习题

    欢迎各位大佬光临本文章!!! 还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正. 本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位大佬.帅哥.美女点点支 ...

最新文章

  1. 软件性能测试瓶颈定位,软件性能问题正确定位思路
  2. sscom 中文显示 乱码_解决SSM框架使用过程中的中文乱码问题
  3. java 怎么清除画布_HTML5 Canvas 清除画布
  4. 直播 3.0 时代,在线教育行业的裂变和重构
  5. 安卓app执行linux命令,如何在android程序中执行adb shell指令
  6. 《OpenGL编程指南》学习笔记
  7. 官方水晶报表 .NET 应用程序实例下载 (Visual Basic .NET)
  8. 计算机网络 - ECMAScript和Javascript、jscript关系
  9. ArcGIS Engine开发教程之图层符号化
  10. spark.yarn.jars的配置
  11. 微信小程序开发知识点
  12. 第十五篇:大球联赛与小球联赛
  13. 大专毕业,从6个月开发转入测试岗位的一些感悟——写在测试岗位3年之际
  14. mac apache 重启
  15. 税务系统服务器维护导致逾期申报了,山东省电子税务局逾期申报处罚等功能升级啦!...
  16. 将登记照图片尺寸宽高文件大小进行调整修改的工具
  17. Android 登陆页面 图片验证码
  18. Python中的解包用法
  19. 2019 前端工程师修炼手册.pdf
  20. 26.分布式限流设计

热门文章

  1. php pg connect,pg_connect
  2. 人工智能、机器学习、数据挖掘著名会议
  3. Transformer、BERT学习笔记
  4. 产生数(Floyd)
  5. POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)
  6. python map用法_Python中ChainMap的一种实用用法
  7. 8s pod 查看 的yaml_Kubernetes入门到实战(五)深入浅出详解Pod
  8. weblogic中设置数据源的注意点
  9. subquery unnesting、Subquery unnesting and View Merge
  10. LODOP打印table表格宽度固定-超宽隐藏