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

算法训练第十五天

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)

相关文章:

  • Mybatis辅助配置-配置SQL提示
  • 【大模型开发应用】提示工程
  • ACS的ExtendedSegmentArc1 方法说明
  • el-select滚动分页加载、模糊搜索
  • Golang SSH握手过程中,报错跟客户端在算法签名上不匹配
  • 无IT审计经验,通过 CISA 考试
  • 打卡Day51
  • force命令的使用
  • 青藏高原地区多源融合降水数据(1998-2017)
  • 【Unity3D优化】优化多语言字体包大小
  • NuGet 从入门到精进全解析
  • Transformers KV Caching 图解
  • h5fortran 简介与使用指南
  • vue前端面试题——记录一次面试当中遇到的题(1)
  • 冒险岛的魔法果实-多重背包
  • 关于有害的过度使用 std::move
  • SCADA|测试KingSCADA4.0信创版采集汇川PLC AC810数据
  • python学习打卡day50
  • A. Dr. TC
  • RPG24.设置武器伤害(二):将效果应用于目标
  • 网站建设服务套餐/seo软文代写
  • 界面设计的基本原则/网络推广seo教程
  • 网站小图片素材/网站建设的技术支持
  • wordpress模板详解/企业seo推广的绝密诀窍曝光
  • 网站建设公司2018/百度总部电话
  • 做网站需要哪些费用支出/网络口碑营销的成功案例