二叉树的镜像和对称二叉树
这个题目的思路就是你既然要翻转你的子树,那你就可以使用递归
先把叶子节点先交换,在往上面交换,比如先交换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.空树 2.根节点 + 左子树 + 右子树(这里的左子树和右子树又是一颗二叉树) 可以看出二叉树就是递归定义的,下面的算法题 ...
- 18. 二叉树的镜像
题目 操作给定的二叉树,将其变换为源二叉树的镜像. 解答 二叉树 递归 递归 这是自下而上的递归(后续遍历) class Solution {public:void Mirror(TreeNode * ...
- JZ18_二叉树的镜像
JZ18_二叉树的镜像 知识点:二叉树 题目链接 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 比如: 源二叉树 8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ ...
- 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...
- L101. 对称二叉树/镜像二叉树
对称二叉树 给定一个二叉树,检查它是否是镜像对称的. 非递推方法 class Solution {public boolean isSymmetric(TreeNode root) {Queue< ...
- 【每日一算法】对称二叉树
每日一算法-对称二叉树 题目 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是 ...
- 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /** * Definition for a binary tree no ...
- 学习笔记:验证对称二叉树
判断一颗二叉树是否对称 金士顿 2018-12-06 11:08:09 1097 收藏 分类专栏: 数据结构和算法 </div></div><div class=&quo ...
- 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行
一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...
最新文章
- MySQL 中 delete 语句的子查询限制
- 网络协议入门(OSI七层和TCP/IC四层协议)
- Java入门算法(双指针篇)丨蓄力计划
- oracle10g数据库复制,oracle -10g 中Duplicate 复制数据库
- 如何选择c语言学习书籍
- leetcode —— 面试题54. 二叉搜索树的第k大节点
- linux 下执行python.py 无效解决方案
- 修改firefox的默认缩放比
- 转:SQL进阶之变量、事务、存储过程与触发器
- AI+进入科学界:人工智能将主导原子世界的科学发现进程
- 计算机游戏软件视频,录屏软件具体怎么使用?记录电脑游戏视频
- [通用指导]笔记本内置无线网卡选用
- jrebel使用方法
- HtmlHelper用法大全(下)
- a55 matlab排列组合_matlab 排列组合函数的用法
- IDEA软件常见的使用方法
- 锥智科技完成5000万元融资 官网启用拼音域名zhuizhikeji.com
- Geant4不完全学习指南8(物理列表的使用)
- 自治区计算机考试试题,2014新疆维吾尔自治区计算机等级考试试题 二级C试题试题及答案...
- Vulkan Samples 阅读 -- Extensions(二)