尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[豪の算法奇妙冒险] 代码随想录算法训练营第十四天 | 翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度

[豪の算法奇妙冒险] 代码随想录算法训练营第十四天 | 翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度
📅 发布时间:2026/6/20 15:21:39
翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度

代码随想录算法训练营第十四天 | 翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度


翻转二叉树

题目链接:https://leetcode.cn/problems/invert-binary-tree/description/

文章讲解:https://programmercarl.com/0226.翻转二叉树.html

视频讲解:https://www.bilibili.com/video/BV1sP4y1f7q7/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 采用层序遍历,遍历每个节点的时候将其左右子树交换

image-20251203101140319

class Solution {public TreeNode invertTree(TreeNode root) {if(root == null){return root;}Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while(!queue.isEmpty()){int size = queue.size();while(size > 0){TreeNode curNode = queue.poll();TreeNode left = curNode.left;TreeNode right = curNode.right;curNode.left = right;curNode.right = left;if(left != null){queue.offer(left);}if(right != null){queue.offer(right);}size--;}}return root;}
}

​ 这题也可以使用递归的方法做,这里采用前序遍历

image-20251203102536967

class Solution {public TreeNode invertTree(TreeNode root){preOrder(root);return root;}public void preOrder(TreeNode root){if(root == null){return;}TreeNode left = root.left;root.left = root.right;root.right = left;preOrder(root.left);preOrder(root.right);}
}

对称二叉树

题目链接:https://leetcode.cn/problems/symmetric-tree/description/

文章讲解:https://programmercarl.com/0101.对称二叉树.html

视频讲解:https://www.bilibili.com/video/BV1ue4y1Y7Mf/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 采用后序遍历,递归法解决

  • 左为空,右不为空,return false
  • 左不为空,右为空,return false
  • 左右都为空,return true
  • 左右都不为空,但左右值不相等,return false

​ 然后再递归比较外侧和内侧是否相等

image-20251203105940396

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

二叉树的最大深度

题目链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/

文章讲解:https://programmercarl.com/0104.二叉树的最大深度.html

视频讲解:https://www.bilibili.com/video/BV1Gd4y1V75u/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 二叉树节点的深度,指的是从根节点到该节点的最长简单路径边的条数或节点数(取决于深度从0开始还是从1开始)

​ 二叉树节点的高度,指的是该节点到叶子节点的最长简单路径边的条数或节点数(取决于高度从0开始还是从1开始)

​ 前序遍历(根左右)求的是深度,后序遍历(左右根)求的是高度,而根节点的高度其实就是二叉树的最大深度

image-20251203195333161

class Solution {public int maxDepth(TreeNode root){if(root == null){return 0;}int leftHeight = maxDepth(root.left);int rightHeight = maxDepth(root.right);int curHeight = 1 + Math.max(leftHeight, rightHeight);return curHeight;}
}

二叉树的最小深度

题目链接:https://leetcode.cn/problems/minimum-depth-of-binary-tree/description/

文章讲解:https://programmercarl.com/0111.二叉树的最小深度.html

视频讲解:https://www.bilibili.com/video/BV1QD4y1B7e2/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 使用后序遍历,其实求的是根节点到叶子节点的最小距离,就是求高度的过程,不过这个最小距离也同样是最小深度

​ 要注意的是,最小深度是从根节点到最近叶子节点的最短路径上的节点数量,注意是叶子节点,所以遇到左子树为空、右子树不为空,或者左子树不为空、右子树为空的情况,需要单独判断

image-20251203195702009

class Solution {public int minDepth(TreeNode root){if(root == null){return 0;}int leftHeight = minDepth(root.left);int rightHeight = minDepth(root.right);if(root.left == null && root.right != null){return 1 + rightHeight;}else if(root.left != null && root.right == null){return 1 + leftHeight;}else{return 1 + Math.min(leftHeight, rightHeight);}}
}

相关新闻

  • JAX 训练加速指南:8 个让 TPU 满跑的工程实战习惯
  • 251202 模拟测 总结
  • 2025年中国温度传感器主流品牌五大推荐:看哪家品牌适合实验

最新新闻

  • iOS自动化测试演进:从WDA底层原理到Appium实战框架选型
  • 杭州黄金回收口碑榜单,连锁老店无隐藏收费上门回收更安心 - 奢品小当家
  • Selenium Grid架构解析与生产环境部署实践
  • 3D床垫哪家技术强 - GrowthUME
  • LLM评测一致性危机与Meta-Evaluation方法论
  • Qwerty Learner 终极指南:免费打造专业英语打字肌肉记忆

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号