当前位置: 首页 > news >正文

【递归】【后续遍历】【迭代】【队列】Leetcode 101 对称二叉树

【递归】【后续遍历】Leetcode 101 对称二叉树

    • 解法一: 递归:后序遍历 左右中
    • 解法二: 迭代法,用了单端队列

---------------🎈🎈对称二叉树 题目链接🎈🎈-------------------

在这里插入图片描述

解法一: 递归:后序遍历 左右中

时间复杂度O(N)
空间复杂度O(N)

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isSymmetric(TreeNode root) {// 递归return compare(root.left, root.right);}public boolean compare(TreeNode left, TreeNode right){ // 确定递归的参数和返回值if(left == null && right==null){return true;}if(left != null && right==null){return false;}if(left == null && right!=null){return false;}if(left.val != right.val){return false;}// 递归逻辑:继续比较左右两个子树的内外侧【相当于后序遍历,最后返回内侧和外侧的比较结果】boolean compareOutside = compare(left.left, right.right); boolean compareInside = compare(left.right, right.left);return compareInside && compareOutside;  // 内外侧都是true的时候就返回true}}       

解法二: 迭代法,用了单端队列

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isSymmetric(TreeNode root) {// 采用迭代法:用了单端队列Queue<TreeNode> myqueue = new LinkedList<>();myqueue.add(root.left);myqueue.add(root.right);while(!myqueue.isEmpty()){TreeNode leftnode = myqueue.poll();TreeNode rightnode = myqueue.poll();if(leftnode == null && rightnode == null){continue;}if(leftnode != null && rightnode == null){return false;}if(leftnode == null && rightnode != null){return false;}if(leftnode.val != rightnode.val){return false;}myqueue.add(leftnode.left);myqueue.add(rightnode.right);myqueue.add(leftnode.right);myqueue.add(rightnode.left);}return true;}
}
http://www.lryc.cn/news/302027.html

相关文章:

  • Nginx https反向代理
  • zip解压缩
  • 电动五金工具行业调研:政策促进市场发展
  • 【矩阵】托普利茨矩阵
  • DS:八大排序之归并排序、计数排序
  • 由斐波那契数列探究递推与递归
  • 红队打靶练习:IMF: 1
  • 密码管理局以及什么是密评?为什么要做密评(商用密码应用安全性评估)?
  • 六、Datax通过json字符串运行
  • 关于数据库
  • 洛谷C++简单题小练习day14—闰年推算小程序
  • 房企关注的典型数字化场景之一:数字营销
  • BMS再进阶(新能源汽车电池管理系统)
  • K8s Deployment挂载ConfigMap权限设置
  • 百度智能云分布式数据库 GaiaDB-X 与龙芯平台完成兼容认证
  • 模拟电子技术——振荡器基本原理、RC桥式振荡器、矩形波发生电器
  • Vue3+Vite+TS+Pinia+ElementPlus+Router+Axios创建项目
  • VMware虚拟机安装CentOS7
  • Avalonia学习(二十四)-系统界面
  • 深入解析鸿蒙系统的页面路由(Router)机制
  • MCU中断响应流程及注意事项
  • 基于Java SSM框架实现网上报名系统项目【项目源码+论文说明】计算机毕业设计
  • Eclipse - Formatter
  • 算法练习-01背包问题【含递推公式推导】(思路+流程图+代码)
  • Eclipse - Format Comment
  • mqtt 协议的概念和理解
  • 2024年大家都在用的AI写作软件推荐,写作不再是难题
  • CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?
  • OpenAI视频生成模型Sora的全面解析:从扩散Transformer到ViViT、DiT、NaViT、VideoPoet
  • 【Java】图解 JVM 垃圾回收(一):GC 判断策略、引用类型、垃圾回收算法