给定一个二叉树,检查它是否是镜像对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

解法1

通过递归的方式:

class Solution {public boolean isSymmetric(TreeNode root) {if(null == root) {return false;}return check(root.left,root.right);}private boolean check(TreeNode left, TreeNode right) {if(null == left && null == right) {return true;}else if (null != left && null != right) {if(left.val == right.val) {return check(left.left, right.right) && check(left.right, right.left);}else {return false;}}return false;}
}

解法2

可以使用层次遍历,使用2个队列存在左子树,右子树. 同时在放入右子树的时候需要变换一下右子树的子节点的位置.

class Solution {public boolean isSymmetric(TreeNode root) {if(null == root) {return false;}LinkedList<TreeNode> leftQueue = new LinkedList<>();LinkedList<TreeNode> rightQueue = new LinkedList<>();leftQueue.offer(root.left);rightQueue.offer(root.right);while (! leftQueue.isEmpty() && ! rightQueue.isEmpty()) {TreeNode l = leftQueue.poll();TreeNode r = rightQueue.poll();if(l == null && r == null) {continue;}else if(l != null && r != null && l.val == r.val) {leftQueue.offer(l.left);leftQueue.offer(l.right);rightQueue.offer(r.right);rightQueue.offer(r.left);}else {return false;}}return leftQueue.isEmpty() && rightQueue.isEmpty();}}

101.symmetric-tree相关推荐

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

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

  2. LeetCode 101. Symmetric Tree

    LeetCode 101. Symmetric Tree Solution1 参考<剑指offer>上的解法:https://blog.csdn.net/allenlzcoder/arti ...

  3. 101. Symmetric Tree (C语言)

    101. Symmetric Tree (C语言) 判断是否为左右镜面对称的二叉树 题目 Given the root of a binary tree, check whether it is a ...

  4. Leetcode: 101. Symmetric Tree

    题目 Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). Fo ...

  5. Leet Code OJ 101. Symmetric Tree [Difficulty: Easy]

    题目: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). F ...

  6. leetcode python3 简单题101. Symmetric Tree

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第一百零一题 (1)题目 英文: Given a binary tree, chec ...

  7. 【easy】101. Symmetric Tree

    判断一棵二叉树是否对称 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* T ...

  8. leetcode 101 Symmetric Tree

    判定两棵树是否严格镜像对称. 解决: BFS bool isSymmetric(TreeNode* root) {if (root == NULL)return true;deque<TreeN ...

  9. LeetCode Algorithm 101. Symmetric Tree

    Title 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1/ \2 2/ \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3, ...

  10. Symmetric Tree (101)

    Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its ...

最新文章

  1. Day 14 知识点串讲 下
  2. Spring Boot 性能优化
  3. linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项
  4. sap 常用事务代码
  5. 从编解码、传输到基础架构 详解Bigo多媒体技术栈
  6. python图片保存_python读取和保存图片5种方法对比
  7. 如何设计一个好玩的游戏——游戏设计的艺术
  8. SAP 修改字段长度
  9. web安全工具介绍(漏洞扫描、信息收集、提升权限的网站、app)持续更新
  10. 《逆流而上的你》大结局将至,邹凯高蜜何去何从
  11. SQL语句查询关键字
  12. 微信公众平台开发入门:[8]聊天机器人可开发
  13. 使用region注释,将代码块收(折叠)起来
  14. 汇编指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、
  15. 考拉海购成重构互联网版图的最大“变量”
  16. 2023年最新批量删除微博_新版微博怎么批量删除自己发的微博?
  17. 查看pip支持版本方法
  18. scroll-view的描点跳转
  19. 联合体(union)的使用方法及其本质
  20. Qt编写的项目作品7-视频监控系统

热门文章

  1. git 源码安装后报错/usr/bin/git: No such file or directory
  2. 上方网首发:TestBird《2015年度手游测试白皮书》
  3. python爬取百度天气接口【实战记录】
  4. 【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造
  5. linux上使用openocd的问题
  6. 实时网速监测app_实时网速app下载-实时网速下载1.0.0安卓版-西西软件下载
  7. Project计算项目进度
  8. 干货分享:Windows资源管理器无限重启?解决方法竟然是…
  9. DockerSwarm部署服务一直处于preparing
  10. js判断密码是否包含数字、大写字母、小写字母、特殊符号