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

简单的电商网站开发安徽疫情最新情况

简单的电商网站开发,安徽疫情最新情况,视频号如何绑定小程序商店,专业做网站的系列题目 236. 二叉树的最近公共祖先 1676. 二叉树的最近公共祖先IV 1644. 二叉树的最近公共祖先 II 235. 二叉搜索树的最近公共祖先 1650. 二叉树的最近公共祖先 III class LowestCommonAncestor:"""236. 二叉树的最近公共祖先题目强调p和q一定存在于二叉树中&…

系列题目
236. 二叉树的最近公共祖先
1676. 二叉树的最近公共祖先IV
1644. 二叉树的最近公共祖先 II
235. 二叉搜索树的最近公共祖先
1650. 二叉树的最近公共祖先 III

在这里插入图片描述

在这里插入图片描述

class LowestCommonAncestor:"""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.hkea.cn/news/317065/

相关文章:

  • 做网站找哪个部门吸引人的推广标题
  • 网站制作软件名字线做竞价推广代运营公司
  • avada如何做中英文网站沈阳百度推广排名优化
  • 做网站品长沙网络营销公司排名
  • b2b商贸网站环球网最新消息疫情
  • wordpress next主题什么是seo教程
  • 如何规划一个网站快手秒赞秒评网站推广
  • 中国网站开发网站seo需要用到哪些工具
  • 织梦做的网站首页出现空白网页平台做个业务推广
  • 备案做电影网站吗yandx引擎入口
  • 网站双倍浮动百度账号登陆入口
  • 聊城市网站建设网站推广排名
  • 帝国新闻网站模板百度seo推广怎么做
  • 预约做港澳证的网站网站排名在线优化工具
  • 罗湖实惠的网站建设费用成都官网seo厂家
  • 建设部官方网站有哪些优帮云排名优化
  • 天津做网站找谁新东方在线教育平台官网
  • 南宁做网站在哪了日本预测比分
  • 咋样查看网站用什么编程语言做的9个广州seo推广神技
  • 网站链接太多怎么做网站地图谷歌广告
  • 网站关键词更新临汾网络推广
  • 个人做网站靠什么盈利免费网站建设模板
  • 网站开发 打标签aso优化怎么做
  • 教育校园网站建设方案seo每天一贴
  • 怎么看网站的建设时间推广公司品牌
  • 营销型网站有什么特点英语培训机构
  • 学院网站的系统建设方式宝鸡网站seo
  • 网站客户端怎么做的百度一下了你就知道官网
  • 有什么推广方法优化大师电脑版官方
  • 自己做网站的服务器上海网站建设公司排名