C#LeetCode刷题之#101-对称二叉树(Symmetric Tree)
问题
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4068 访问。
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \3 4 4 3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
/ \
2 2
\ \
3 3
说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
1
/ \
2 2
/ \ / \3 4 4 3
But the following [1,2,2,null,3,null,3] is not:
1
/ \
2 2
\ \
3 3
Note:Bonus points if you could solve it both recursively and iteratively.
示例
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4068 访问。
public class Program {public static void Main(string[] args) {var root = new TreeNode(1) {left = new TreeNode(2),right = new TreeNode(2)};var res = IsSymmetric(root);Console.WriteLine(res);Console.ReadKey();}public static bool IsSymmetric(TreeNode root) {return Symmetric(root, root);}public static bool Symmetric(TreeNode node1, TreeNode node2) {//都为空时,递归终止,为镜像二叉树if(node1 == null && node2 == null) return true;//有一个为空时,递归终止,不是镜像二叉树if(node1 == null || node2 == null) return false;//递归判定return node1.val == node2.val &&Symmetric(node1.left, node2.right) &&Symmetric(node1.right, node2.left);}public class TreeNode {public int val;public TreeNode left;public TreeNode right;public TreeNode(int x) { val = x; }}}
以上给出1种算法实现,以下是这个案例的输出结果:
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4068 访问。
True
分析:
显而易见,以上算法的时间复杂度为: 。
C#LeetCode刷题之#101-对称二叉树(Symmetric Tree)相关推荐
- leetcode刷题记录总结-7.二叉树
文章目录 零.二叉树理论 二叉树的种类 满二叉树 完全二叉树 二叉搜索树 平衡二叉搜索树 二叉树的存储方式 二叉树的遍历方式 二叉树的定义 总结 一.二叉树的遍历 [144. 二叉树的前序遍历 ](h ...
- LeetCode刷题实战314:二叉树的竖直遍历
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- C#LeetCode刷题之#110-平衡二叉树(Balanced Binary Tree)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4074 访问. 给定一个二叉树,判断它是否是高度平衡的二叉树. 本 ...
- C#LeetCode刷题之#226-翻转二叉树(Invert Binary Tree)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4080 访问. 翻转一棵二叉树. 输入: 4 / \ ...
- C#LeetCode刷题之#617-合并二叉树(Merge Two Binary Trees)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4096 访问. 给定两个二叉树,想象当你将它们中的一个覆盖到另一个 ...
- leetcode 刷题之路 64 Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree. Note: You may assume tha ...
- C#LeetCode刷题-树
树篇 # 题名 刷题 通过率 难度 94 二叉树的中序遍历 61.6% 中等 95 不同的二叉搜索树 II 43.4% 中等 96 不同的二叉搜索树 51.6% 中等 98 验证二叉搜索树 22.2% ...
- LeetCode刷题实战546:移除盒子
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题实战568:最大休假天数
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
最新文章
- wordpress jquery加载如何实现?
- Next-best-action marketing简介
- php节点对象,JavaScript_JavaScript中访问节点对象的方法有哪些如何使用,JavaScript中访问节点对象的方法 - phpStudy...
- python双循环zip_Python如何同时进行两个循环
- 【iOS XMPP】使用XMPPFramewok(一):添加XMPPFramework(XCode 4.6.2)
- MyBatis-Plus_查询返回实体对象还是map?
- android9.0原生字体,iOS 9原生字体看腻了?不如学着去替换吧
- 使用Notepad++自动排版代码
- 学完 Fluent 官方基础教程,你离一名合格Fluent 流体工程师还有多远?
- Python临时文件创建:tempfile模块简介
- 互联网运营面试题_网站运营面试常见问题和答案
- 本地服务(local Service)的实现
- RK61键盘配置方法
- 人脸识别技术的简单认识(含原理)
- 【数论】斐波那契数列求和公式
- 惠州技校那间有读计算机网络的,惠州有哪些公办职校中专学校
- 计算机专业退休有退休金,我参加工作42年,国家公务员退休,二级警督,退休工资为什么按2014年10月份的工资计算机退休费...
- Python 的轻量级搜索工具:Whoosh
- 操作系统---栈区与堆区 转自:https://blog.csdn.net/amcp9/article/details/79597481
- V-Rep虚拟机器人实验平台在Ubuntu18.04LTS安装与使用笔记