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

代码随想录算法训练营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.mrgr.cn/news/100203.html

相关文章:

  • spring中的@bean注解详解
  • 点云从入门到精通技术详解100篇-基于二次误差和高斯混合模型的点云配准算法
  • Linux 内核网络协议栈中 inet_stream_ops 与 tcp_prot 的深度解析
  • Windows同步技术-使用命名对象
  • 搜索二叉树-key的搜索模型
  • 霍格软件测试-JMeter高级性能测试一期
  • 【音视频】AVIO输入模式
  • 蓝桥杯 3. 密码脱落
  • iOS/Android 使用 C++ 跨平台模块时的内存与生命周期管理
  • 施磊老师基于muduo网络库的集群聊天服务器(七)
  • OpenHarmony之电源管理子系统公共事件定义
  • FX10(CYUSB4014)USB3.2(10Gbps)开发笔记分享(1):硬件设计与开发环境搭建
  • CMake ctest
  • 用diffusers库从单文件safetensor加载sdxl模型(离线)
  • 深入解析 Linux 中动静态库的加载机制:从原理到实践
  • 深入解析YOLO v1:实时目标检测的开山之作
  • PCI 总线学习笔记(五)
  • 蜜罐管理和数据收集服务器:Modern Honey Network (MHN)
  • 高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
  • ClickHouse 中`MergeTree` 和 `ReplicatedMergeTree`表引擎区别