这个题目的思路就是你既然要翻转你的子树,那你就可以使用递归

先把叶子节点先交换,在往上面交换,比如先交换2节点下面的1,3往上走,交换4节点下面的2,7,最后就就完全翻转了。

void swaptree(TreeNode *root)

{

if(root==NULL)

{

return ;

}

swaptree(root->left);

swaptree(root->right);

TreeNode *temp=root->left;

root->left=root->right;

root->right=temp;

}

TreeNode* mirrorTree(TreeNode* root) {

swaptree(root);

return root;

}

bool  dfs(TreeNode*left,TreeNode* right)

{

if(left==NULL&&right==NULL) return true;

if(left==NULL||right==NULL) return false;

if(left->val!=right->val) return false;

return dfs(left->left,right->right)&&dfs(left->right,right->left);

}

bool isSymmetric(TreeNode* root) {

if(root==NULL) return true;

return dfs(root->left,root->right);

}

二叉树的镜像和对称二叉树相关推荐

  1. 二叉树常见算法题(单值二叉树、二叉树的最大深度、反转二叉树、判断两颗二叉树是否相同、对称二叉树、一颗二叉树是否是另一颗二叉树的子树)

    这里的代码都是递归实现的,再强调下二叉树的概念,二叉树的构成有两种情况: 1.空树 2.根节点 + 左子树 + 右子树(这里的左子树和右子树又是一颗二叉树) 可以看出二叉树就是递归定义的,下面的算法题 ...

  2. 18. 二叉树的镜像

    题目 操作给定的二叉树,将其变换为源二叉树的镜像. 解答 二叉树 递归 递归 这是自下而上的递归(后续遍历) class Solution {public:void Mirror(TreeNode * ...

  3. JZ18_二叉树的镜像

    JZ18_二叉树的镜像 知识点:二叉树 题目链接 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 比如: 源二叉树 8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ ...

  4. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)

    1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...

  5. L101. 对称二叉树/镜像二叉树

    对称二叉树 给定一个二叉树,检查它是否是镜像对称的. 非递推方法 class Solution {public boolean isSymmetric(TreeNode root) {Queue< ...

  6. 【每日一算法】对称二叉树

    每日一算法-对称二叉树 题目 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1   / \  2   2 / \ / \ 3  4 4  3 但是 ...

  7. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  8. 学习笔记:验证对称二叉树

    判断一颗二叉树是否对称 金士顿 2018-12-06 11:08:09 1097 收藏 分类专栏: 数据结构和算法 </div></div><div class=&quo ...

  9. 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行

    一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...

最新文章

  1. MySQL 中 delete 语句的子查询限制
  2. 网络协议入门(OSI七层和TCP/IC四层协议)
  3. Java入门算法(双指针篇)丨蓄力计划
  4. oracle10g数据库复制,oracle -10g 中Duplicate 复制数据库
  5. 如何选择c语言学习书籍
  6. leetcode —— 面试题54. 二叉搜索树的第k大节点
  7. linux 下执行python.py 无效解决方案
  8. 修改firefox的默认缩放比
  9. 转:SQL进阶之变量、事务、存储过程与触发器
  10. AI+进入科学界:人工智能将主导原子世界的科学发现进程
  11. 计算机游戏软件视频,录屏软件具体怎么使用?记录电脑游戏视频
  12. [通用指导]笔记本内置无线网卡选用
  13. jrebel使用方法
  14. HtmlHelper用法大全(下)
  15. a55 matlab排列组合_matlab 排列组合函数的用法
  16. IDEA软件常见的使用方法
  17. 锥智科技完成5000万元融资 官网启用拼音域名zhuizhikeji.com
  18. Geant4不完全学习指南8(物理列表的使用)
  19. 自治区计算机考试试题,2014新疆维吾尔自治区计算机等级考试试题 二级C试题试题及答案...
  20. Vulkan Samples 阅读 -- Extensions(二)

热门文章

  1. 硬件设计分享-⑨电感与磁珠
  2. win10 无法安全地连接到此页面 TLS安全设置未设置为默认 该怎么办? 无法访问此页面
  3. 微信公众号二维码怎么生成?好用的生成方法介绍
  4. 51Nod1740 蜂巢迷宫
  5. NX二次开发 使用了一个已删除或无效的类号
  6. Python常用开发软件有哪些?
  7. 三菱FX5U以太网数据采集方案
  8. java禅道_使用Java+Excel统计禅道上问题处理情况
  9. Linux之ARM(IMX6U)裸机汇编LED驱动实验--烧写bin文件到SD卡中并运行
  10. 那些年踩过的坑-之《Android Q-高通平台UAC(USB Audio Class)调试记录》