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

云主机 多 网站成都网站建设四易维达

云主机 多 网站,成都网站建设四易维达,公民道德建设网站,深圳市住建局工程交易服务网二叉搜索树是一个有序树:每个二叉树都满足左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值;利用该性质,可以实现二叉搜索树特有的自顶向下遍历 700. 二叉搜索树中的搜索 思路1、自顶向下的遍…

二叉搜索树是一个有序树:每个二叉树都满足左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值;利用该性质,可以实现二叉搜索树特有的自顶向下遍历

700. 二叉搜索树中的搜索

思路1、自顶向下的遍历:利用二叉搜索树有序性的性质,直接迭代法求解
思路2、递归-重复逻辑:对每个二叉树根节点判断值是否相等、根据值大小关系搜索左右子树

'''
700. 二叉搜索树中的搜索
给定二叉搜索树(BST)的根节点root和一个整数值val。
你需要在 BST 中找到节点值等于val的节点。 返回以该节点为根的子树。 如果节点不存在,则返回null。
示例 1:输入:root = [4,2,7,1,3], val = 2输出:[2,1,3]
思路1、自顶向下的遍历:利用二叉搜索树有序性的性质,直接迭代法求解
思路2、递归-重复逻辑:对每个二叉树根节点判断值是否相等、根据值大小关系搜索左右子树
'''
class Solution:# 利用二叉搜索树有序性的性质,直接迭代法求解def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:while root != None:if root.val > val:root = root.leftelif root.val < val:root = root.rightelse:  # root.val == valreturn rootreturn None# 递归-重复逻辑:对每个二叉树根节点判断值是否相等、根据值大小关系搜索左右子树def searchBSTRecursive(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:# 简单情况if root == None:return Noneelif root.val == val:return root# 重复逻辑elif root.val > val:return self.searchBSTRecursive(root.left, val)elif root.val < val:return self.searchBSTRecursive(root.right, val)

235. 二叉搜索树的最近公共祖先

思路:和 “700. 二叉搜索树中的搜索”是一样的题,后者是寻找一个数找到并返回以该数为根节点的子树,本题是寻找同时包含两个数的子树
从上到下的遍历:利用二叉搜索树有序性的性质,只要从上到下遍历的时候,cur节点是数值在[p, q]区间中则说明该节点cur就是最近公共祖先了
递归:重复操作:对每个二叉树根节点判断值是否在[p, q]区间、根据值大小关系搜索左右子树

'''
235. 二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出: 6 解释: 节点 2 和节点 8 的最近公共祖先是 6。
思路:和 “700. 二叉搜索树中的搜索”是一样的题,后者是寻找一个数找到并返回以该数为根节点的子树,本题是寻找同时包含两个数的子树
从上到下的遍历:利用二叉搜索树有序性的性质,只要从上到下遍历的时候,cur节点是数值在[p, q]区间中则说明该节点cur就是最近公共祖先了。
递归:重复操作:对每个二叉树根节点判断值是否在[p, q]区间、根据值大小关系搜索左右子树
'''
class Solution:def lowestCommonAncestor(self, root: Optional[TreeNode], p: Optional[TreeNode], q: Optional[TreeNode]) -> Optional[TreeNode]:while root != None:if root.val > p.val and root.val > q.val:root = root.leftelif root.val < p.val and root.val < q.val:root = root.rightelse:  # 包含了很多种情况(p、q哪个大或小),总体来说就是cur节点是数值在[p, q]区间中,是同时包含这两个数的子树return rootreturn None
http://www.yayakq.cn/news/587219/

相关文章:

  • 郑州网站开发与建设西安网站关键词推广
  • 外行怎么做网站建站服务搭建的页面时
  • 北京做网站比较好的公司转业做网站的工具
  • 苏州微信网站建设商丘网络推广哪家好
  • 漯河住房建设局网站信誉楼线上商城小程序
  • 在什么网站做引流成都网站设计 冠辰
  • wordpress加群插件下载seo工具
  • 新开家政如何做网站网站 产品原型
  • 深圳住房网站appwordpress 在线商城
  • 怎么查看一个网站做的外链最新新闻事件今天300字
  • 杭州哪里做网站湖北网站seo
  • 织梦个人网站模板织梦移动网站模板
  • 上海成品网站网页在线设计
  • 福州网站建设出格网络网站 拉新
  • 霞山网站开发公司毕业设计网站开发实施步骤
  • 引流用的电影网站怎么做合肥市建设工程信息网官网
  • 网站的html代码在哪五月色做受网站
  • 企业营销推广怎么做万源seo
  • 网站备案快速备案设计师导航网站源码
  • 网站设计怎么算侵权wordpress照片主题
  • 有做微信婚介网站的吗室内设计公司办公室图片
  • 做网站开发的笔记本配置深圳市佳简几何工业设计有限公司
  • 新乡网站制作wordpress页眉导航栏位置
  • 重庆市建设医院网站有哪些网站平台
  • 宁波做网站优化多少钱seo销售是做什么的
  • 阿里云网站建设考试认证题如何推广app赚钱
  • 如何wix 做 网站青岛建设集团官方网站
  • 彩投网站建设衡阳网站建设价格
  • 网站改版建设方案自己开发网站需要多少钱
  • 如何创建网站的第一步聊城做网站推广公司