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

算法训练第十五天

110.平衡二叉树

代码:

# 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 isBalanced(self, root: Optional[TreeNode]) -> bool:ans = [True]a = self.find(root,ans)return ans[0]def find(self,node,ans):if node is None:return 0left = self.find(node.left,ans)right = self.find(node.right,ans)if abs(left-right)>1:ans[0] = Falsereturn max(left,right)+1

257.二叉树的所有路径

代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):import copydef binaryTreePaths(self, root):""":type root: Optional[TreeNode]:rtype: List[str]"""ans = []res = []self.find(root,res,ans)return ansdef find(self,node,res,ans):res.append(str(node.val))if node.left is None and node.right is None:ans.append(copy.deepcopy('->'.join(res)))res.pop()returnif node.left:self.find(node.left,res,ans)if node.right:self.find(node.right,res,ans)res.pop()

404.左叶子之和

代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def sumOfLeftLeaves(self, root):""":type root: Optional[TreeNode]:rtype: int"""ans = []lf=Falseself.find(root,ans,lf)return sum(ans)def find(self,node,ans,lf):if node.left is None and node.right is None:if lf:ans.append(node.val)if node.left:self.find(node.left,ans,True)if node.right:self.find(node.right,ans,False)

222.完全二叉树的节点个数

代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def countNodes(self, root):""":type root: Optional[TreeNode]:rtype: int"""ans = []self.find(root,ans)return len(ans)def find(self,node,ans):if node:ans.append(node.val)self.find(node.left,ans)self.find(node.right,ans)
http://www.xdnf.cn/news/13669.html

相关文章:

  • docker推荐应用汇总及部署实战
  • ComfyUI-安装
  • 不装 ROS 也能用 PyKDL!使用kdl_parser解析URDF并进行IK
  • Linux-进程间的通信
  • 大数据服务器的特点都指什么?
  • Python----OpenCV(图像处理——边界填充、图像融合、图像阈值、深拷贝与浅拷贝)
  • 零基础学前端-传统前端开发(第三期-CSS介绍与应用)
  • 【报错】【docker】write /opt/test/Model.gguf: no space left on device
  • 飞书多维表格利用 Amazon Bedrock AI 能力赋能业务
  • GlusterFS概述
  • 鸿蒙新闻应用全链路优化实践:从内核重构到体验革新
  • JavaEE-发展历史
  • AI Agent核心技术深度解析:Function Calling与ReAct对比报告
  • 鹰盾视频加密器播放器跨平台播放器开发的技术架构与实现方案
  • 无需 Mac,使用Appuploader简化iOS上架流程
  • Flutter - 原生交互 - 相机Camera - 02
  • 编程学习网站大全(C++/OpenCV/QT方向)—— 资源导航与深度评测
  • AI任务相关解决方案8-基于卷积神经网络(CNN)和反向传播神经网络(BPNN)的数字图像水印改进算法
  • git撤回commit
  • 力扣-121.买卖股票的最佳时机
  • 计算机系统概述(5)
  • Bandizip 7.38专业版安装教程【超详细】一键安装教程(永久使用)
  • MySQL 基础笔记
  • RNN:从记忆困境到序列建模革命
  • docker-compose和docker下载
  • 如何在docker desktop上安装mysql
  • 20250611让NanoPi NEO core开发板在Ubuntu core16.04系统下开机自启动的时候拉高GPIOG8
  • 缓冲区(C语言缓冲区+内核缓冲区)一个例子解释他们的关系和作用!!!
  • ElasticSearch 操作索引与映射的API
  • Springboot+idea热更新