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

算法训练第十六天

513.找树左下角的值

代码:

# 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 findBottomLeftValue(self, root):""":type root: Optional[TreeNode]:rtype: int"""ans = []queue = []if not root:return ansqueue.append(root)size = 1while queue:res = []while size>0:t = queue.pop(0)res.append(t.val)if t.left:queue.append(t.left)if t.right:queue.append(t.right)size-=1ans.append(res)size=len(queue)return ans[len(ans)-1][0]

112. 路径总和

代码:

# 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 hasPathSum(self, root, targetSum):""":type root: Optional[TreeNode]:type targetSum: int:rtype: bool"""if root is None:return Falseans = [False]res = []self.find(root,res,ans,targetSum)return ans[0]def find(self,node,res,ans,targetSum):res.append(node.val)if node.left is None and node.right is None:if sum(res)==targetSum:ans[0]=Trueres.pop()returnif node.left:self.find(node.left,res,ans,targetSum)if node.right:self.find(node.right,res,ans,targetSum)res.pop()return

113. 路径总和Ⅱ

代码:

# 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 pathSum(self, root, targetSum):import copy""":type root: Optional[TreeNode]:type targetSum: int:rtype: List[List[int]]"""if root is None:return []ans = []res = []self.find(root,res,ans,targetSum)return ansdef find(self,node,res,ans,targetSum):res.append(node.val)if node.left is None and node.right is None:if sum(res)==targetSum:ans.append(copy.deepcopy(res))res.pop()returnif node.left:self.find(node.left,res,ans,targetSum)if node.right:self.find(node.right,res,ans,targetSum)res.pop()return

106.从中序与后序遍历序列构造二叉树

代码:

# 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 buildTree(self, inorder, postorder):import copy""":type inorder: List[int]:type postorder: List[int]:rtype: Optional[TreeNode]"""if len(postorder)==0:return Noneroot = TreeNode()val = postorder[len(postorder)-1]root.val = valif len(postorder)==1:return rootidx = inorder.index(val)root.left = self.find(inorder,postorder,0,idx-1,0,0+idx-1-0)root.right = self.find(inorder,postorder,idx+1,len(inorder)-1,idx,len(postorder)-2)return rootdef find(self,inorder,postorder,il,lr,pl,pr):if pr-pl+1<=0:return Nonenode = TreeNode()node.val = postorder[pr]if pr-pl+1==1:return nodeidx = inorder.index(node.val)node.left = self.find(inorder,postorder,il,idx-1,pl,pl+idx-1-il)node.right = self.find(inorder,postorder,idx+1,lr,pl+idx-1-il+1,pr-1)return node
http://www.xdnf.cn/news/1006993.html

相关文章:

  • 蓝桥杯国赛训练 day4
  • 主流邻近标记技术解析与应用
  • 构建安全可靠的电子商务平台的综合策略
  • 基础专题(遗漏):代码颜色
  • 学习日记-day28-6.12
  • OpenCV 随机数和随机颜色
  • 单片机中面向对象的思维
  • 如何处理HTML5兼容性的问题
  • glibc
  • 数据信号处理方法三板斧
  • 会技术的产品经理
  • Keep-Alive 续集:Vue.extend 的遗产解析与优雅告别
  • 文档测试发送
  • 聚集索引与非聚集索引
  • Chapter07-信息披漏
  • Python原生爬虫教程:微店商品详情API接口攻略指南
  • 安徽省考计算机专业课笔记
  • XSS攻击概念通俗解释
  • STM32H7 SD卡使用以及其DMA读写
  • 【AI】理解神经网络原理
  • Java学习笔记之:Vue中路由的基本使用
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(34):ようですそうですばかりのに
  • 由于现在ui设计软件百花齐放,用传统的photoshop设计页面的方式正被摒弃
  • YOLOv2 技术详解:目标检测的又一次飞跃
  • 力扣100- 环形链表
  • vue-property-decorator实践(一)
  • 在 pgvector 中指定相似度搜索方法
  • 能提升30%!Infortrend普安存储自动分层增强版赋能文件共享与医疗影像
  • 华为OD机考-英文输入法-逻辑分析(JAVA 2025B卷)
  • 从 CAN FD 到 SD NAND(SLC)存储:S32K146 T-Box 如何驱动车载数据架构革新?