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

代码随想录算法训练营day11(二叉树)

华子目录

  • 翻转二叉树
    • 思路
  • 对称二叉树
    • 思路
  • 二叉树的最大深度
    • 思路

翻转二叉树

  • https://leetcode.cn/problems/invert-binary-tree/description/

在这里插入图片描述

思路

  • 采用递归的思路
  • 可以前序遍历后序遍历,不能使用中序遍历
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def invert(self, cur):if not cur:return curcur.left, cur.right = cur.right, cur.left     # 中self.invert(cur.left)    # 左self.invert(cur.right)   # 右def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:self.invert(root)return root

对称二叉树

  • https://leetcode.cn/problems/symmetric-tree/description/

在这里插入图片描述

思路

  • 使用递归后序遍历
  • 判断一边的左孩子是否等于另一边的右孩子一边的右孩子是否等于另一边的左孩子
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def symmetric(self,left,right):if left and not right:return Falseelif not left and right:return Falseelif not left and not right:return Trueelif left.val != right.val:return Falseres1 = self.symmetric(left.left, right.right)res2 = self.symmetric(left.right, right.left)res = True if res1 and res2 else False   return resdef isSymmetric(self, root: Optional[TreeNode]) -> bool:if self.symmetric(root.left, root.right):return Trueelse:return False

二叉树的最大深度

  • https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/

在这里插入图片描述

思路

  • 使用递归
  • 后序遍历的思想
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def maxDepth(self, root: Optional[TreeNode]) -> int:height = 1cur = rootif not cur:return 0leftHeight = self.maxDepth(cur.left)    # 左rightHeight = self.maxDepth(cur.right)  # 右height = height + max(leftHeight, rightHeight)   # 中return height
http://www.xdnf.cn/news/1907.html

相关文章:

  • 轻量级静态网站托管:服务器配置与网站性能深入探讨
  • Sui 携手 xMoney 和 xPortal 推出虚拟万事达卡,拓展现实支付场景接入
  • 分布式ID生成方案详解
  • 软件为什么需要性能测试?软件测试机构性能测试注意事项有哪些?
  • 实时数据驱动未来:谷云科技CDC实时数据集成平台新版本发布
  • JAVA常用分布式锁Redisson
  • 大模型驱动智能服务变革:从全流程赋能到行业纵深落地
  • WHAT - 前端开发书单推荐
  • 带宽?增益带宽积?压摆率?
  • 基于物联网的智能家居安全防护系统设计
  • Java 24 深度解析:云原生时代的性能更新与安全重构
  • 用 Python 打造打篮球字符动画!控制台彩色炫酷输出,抖音搞怪视频灵感还原
  • 基于 Python(selenium) 的今日头条定向爬虫:根据输入的关键词在今日头条上进行搜索,并爬取新闻详情页的内容
  • 大型超市仓储管理5大痛点解析 智能穿梭车如何实现降本增效?
  • 数字后端设计 (五):布线——芯片里的「交通总动员」
  • [自记录]一次Nvidia显卡的AI容器基础镜像制作过程(含Torch版本和ONNXRuntime版本选择)
  • AI新战局:Gemini 2.5 Pro强势挑战OpenAI o3,谁是真“全能”?“锯齿AGI”时代已来临?
  • 快速了解redis,个人笔记
  • CRM管理优化的7个关键指标:提升客户留存率的科学方法
  • 优化算法
  • 文档编辑:reStructuredText全面使用指南 — 第二部分 基础语法
  • 【金仓数据库征文】-《深入探索金仓数据库:从基础到实战》
  • 【贝叶斯定理01】白话贝叶斯(原理篇)
  • MYSQL 常用数值函数 和 条件函数 详解
  • 1、RabbitMQ的概述笔记
  • Linux-06 ubuntu 系统截图软件使用简单记录
  • 百度Create2025 AI开发者大会:模型与应用的未来已来
  • 数智飞轮:AI时代企业增长的核心密码
  • 《免费开放”双刃剑:字节跳动Coze如何撬动AI生态霸权与暗涌危机?》
  • 最火向量数据库Milvus安装使用一条龙!