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

算法训练第十七天

654. 最大二叉树

代码:

# 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 constructMaximumBinaryTree(self, nums):""":type nums: List[int]:rtype: Optional[TreeNode]"""if len(nums)==0:return numsroot = TreeNode()root.val = max(nums)if len(nums)==1:return rootidx = nums.index(root.val)root.left = self.find(nums,0,idx-1)root.right = self.find(nums,idx+1,len(nums)-1)return rootdef find(self,nums,left,right):if right-left+1==0:return Nonenode = TreeNode()idx = leftfor i in range(left,right+1):if nums[i]>nums[idx]:idx = inode.val = nums[idx]node.left = self.find(nums,left,idx-1)node.right = self.find(nums,idx+1,right)return node

617.合并二叉树

代码:

# 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 mergeTrees(self, root1, root2):""":type root1: Optional[TreeNode]:type root2: Optional[TreeNode]:rtype: Optional[TreeNode]"""if root1 is None and root2 is None:return Noneif root1 is None and root2 is not None:return root2if root1 is not None and root2 is None:return root1ans = self.find(root1,root2)return ansdef find(self,node1,node2):if node1 is None and node2 is None:return Noneif node1 is None and node2 is not None:return node2if node1 is not None and node2 is None:return node1node = TreeNode()node.val = node1.val+node2.valnode.left = self.find(node1.left,node2.left)node.right = self.find(node1.right,node2.right)return node

700.二叉搜索树中的搜索

代码:

# 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 searchBST(self, root, val):""":type root: Optional[TreeNode]:type val: int:rtype: Optional[TreeNode]"""ans = self.find(root,val)return ansdef find(self,node,val):if node is None:return Noneif node.val==val:return nodeif val < node.val:return self.find(node.left,val)else:return self.find(node.right,val)

98.验证二叉搜索树

代码:

# 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 isValidBST(self, root):""":type root: Optional[TreeNode]:rtype: bool"""res = []self.find(root,res)for i in range(1,len(res)):if res[i]<=res[i-1]:return Falsereturn Truedef find(self,node,res):if node:self.find(node.left,res)res.append(node.val)self.find(node.right,res)

相关文章:

  • Hugging face 和 魔搭
  • 浅拷贝 与 深拷贝
  • LeetCode - 35. 搜索插入位置
  • 戴维南端接与 RC端接
  • static的三种作用
  • 重读《人件》Peopleware -(16)Ⅲ 适当人选 Ⅰ霍恩布洛尔因素(上)
  • callback的原理和机制
  • <10>-MySQL索引特性
  • 【电声耦合】TaOsSi和NbOsSi超导中的电子-声子耦合
  • c++编译第三方项目报错# pragma warning( disable: 4273)
  • 多线程下 到底是事务内部开启锁 还是先加锁再开启事务?
  • AnimateCC及CreateJS:打飞机的4版本V1、V2、V3、V4
  • hot100 -- 12.栈系列
  • 金蝶云星空BOS开发
  • Linux进程间通信(IPC)详解:从入门到理解
  • 深度分析Javascript中的Promise
  • 人工智能学习19-Pandas-设置
  • 当遇到“提交失败:404”的问题时,通常表明前端请求的URL无法正确匹配到后端的Servlet或资源。
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(四)
  • 【办公类-25-05】20250514 Python模拟UIBOT上传园园通截图(自动最小化界面,时间部分的删除和黏贴)
  • 织梦cms怎样做网站/自动点击器免费下载
  • 如何做微信朋友圈网站/日本免费服务器ip地址
  • 广州网站制作怎样/张家港seo建站
  • 要想学做网站/东莞seo排名优化
  • wordpress 显示页面标题/搜索引擎优化方法
  • 国外做外贸的网站/百度网页版登录首页