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

高端建设网站公司哪家好企业网站的建立

高端建设网站公司哪家好,企业网站的建立,wordpress图文直播插件,律师事务所网站建设方案系列题目 236. 二叉树的最近公共祖先 1676. 二叉树的最近公共祖先IV 1644. 二叉树的最近公共祖先 II 235. 二叉搜索树的最近公共祖先 1650. 二叉树的最近公共祖先 III class LowestCommonAncestor:236. 二叉树的最近公共祖先题目强调p和q一定存在于二叉树中236. 二叉树的最近公共祖先题目强调p和q一定存在于二叉树中区别于1644题https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/def solution(self, root: TreeNode, p: TreeNode, q: TreeNode) - TreeNode:def find(root, val1, val2):if not root:return None# 这里对应情况二if root.val val1 or root.val val2:return rootleft find(root.left, val1, val2)right find(root.right, val1, val2)# 这里对应情况一 【后序位置已经知道左右子树是否存在目标值】if left and right:# 当前节点是 LCA 节点return rootreturn left if left else rightreturn find(root, p.val, q.val) class LowestCommonAncestor2:1676. 二叉树的最近公共祖先IV这道题把p和q换成了包含若干个节点的列表同样这些列表里的所有节点一定存在于二叉树中区别于1644题https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree-iv/def solution(self, root: TreeNode, nodes: List[TreeNode]) - TreeNode:# 将列表转化成哈希集合便于判断元素是否存在values set()for node in nodes:values.add(node.value)self.find(root, values)def find(self, root: TreeNode, values):if not root:return None# 前序位置if root.value in values:return rootleft self.find(root.left, values)right self.find(root.right, values)# 后序位置已经知道左右子树是否存在目标值if left and right:return rootreturn left if left else right class LowestCommonAncestor3:1644. 二叉树的最近公共祖先 II输入一棵不含重复值的二叉树的以及两个节点 p 和 q这道题区别于236题给定的两个节点p和q不一定存在于树中不存在返回空指针存在则返回最近公共祖先节点https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree-ii/def __init__(self):# 用于记录p和q是否存在于二叉树中self.foundP Falseself.foundQ Falsedef solution(self, root: TreeNode, p: TreeNode, q: TreeNode) - TreeNode:res self.find(root, p.val, q.val)if not self.foundP or not self.foundQ:return Nonereturn resdef find(self, root, val1, val2):在二叉树中寻找 val1 和 val2 的最近公共祖先节点:param root::param val1::param val2::return:if not root:return Noneleft self.find(root.left, val1, val2)right self.find(root.right, val1, val2)# 后续位置判断当前节点是不是LCAif left and right:# 当前节点是 LCA 节点return root# 后续位置判断当前节点是不是目标值if root.value val1 or root.value val2:if root.value val1:self.foundP Trueif root.value val2:self.foundQ Truereturn rootreturn left if left else right class LowestCommonAncestor4:235. 二叉搜索树的最近公共祖先这是一颗BST树要充分利用 左子节点 父节点 右子节点 的大小关系寻找LCAhttps://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/def solution(self, root: TreeNode, p: TreeNode, q: TreeNode) - TreeNode:val1 min(p.val, q.val)val2 max(p.val, q.val)return self.find(root, val1, val2)# 在 BST 中寻找 val1 和 val2 的最近公共祖先节点def find(self, root, val1, val2):if not root:return Noneif root.val val2:return self.find(root.left, val1, val2)elif root.val val1:return self.find(root.right, val1, val2)else: # val1 root.val val2return root class LowestCommonAncestor5:1650. 二叉树的最近公共祖先 III这道题给出的二叉树节点比较特殊包括指向父节点的指针和寻找两个单链表的相交的起始点做法一样【160. 相交链表】二叉树的最近公共祖先 IIIhttps://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree-iii/class Node:def __init__(self):self.val Noneself.left Noneself.right Noneself.parent Nonedef solution(self, p: Node, q: Node) - Node:# 链表双指针技巧a, b p, qwhile a ! b:# a 走一步如果走到根节点转到 q 节点if not a:a qelse:a a.parent# b 走一步如果走到根节点转到 p 节点if not b:b pelse:b b.parentreturn a
http://www.tj-hxxt.cn/news/132765.html

相关文章:

  • 网站的备案可以管几年贵阳网站设计案例
  • 晋江市住房建设局网站wordpress电脑主题
  • 邢台企业做网站费用泰安招聘信息最新招聘2021
  • 杭州网站建设技术支持河北廊坊建设局网站
  • 图书馆建设网站打不开手机开发网站怎么做
  • 石家庄免费网站制作不用服务器做视频网站吗
  • 代理网站是什么网络营销的方式都有哪些
  • 网络推广员公司网站做优化少钱
  • 网站建设策划书的心得互联网品牌推广
  • 网站建设app小程序开发微网站 留言板
  • 广州市网站公司网站推广计划书怎么做
  • 网站制作小工具学网站建设app
  • 做公司网站有什么猫腻王府井网上商城官网
  • 快照打开是网站网站南乐网站建设公司
  • 网站建设公司中深圳做棋牌网站建设哪家服务好
  • 外贸网站 备案色盲能治好吗
  • 公司网站要什么做青岛网站设计品牌企业
  • 网站封装成app可以做热更新织梦cms网站更新
  • 免费发布信息网站大全注册300元免费开发小程序
  • 做男装比较好的网站有哪些专门做杂志的网站有哪些
  • 广东省网站备案系统软件技术包括哪些
  • 良精企业网站管理系统源码 后台不能编辑产品镇江网站建设多少钱
  • 百度官方网站下载安装做网站需要备案几次
  • 电厂建设审批进度网站河南英文网站建设公司
  • 连云港东海网站建设广州 互联网公司 网站首页
  • 网站开发的搭建框架是什么意思WordPress文档批量发布接口
  • 东莞企业网站哪家强景观设计师做交通分析常用网站
  • 网站优化步骤wordpress头像代码
  • 机械东莞网站建设电子商务网站建设及维护
  • 免费做印章的网站网站建设售后服务内容