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

厦门网站建设官网南山商城网站建设多少钱

厦门网站建设官网,南山商城网站建设多少钱,Wordpress采集插件破解版,网站文章内容优化方案235. 二叉搜索树的最近公共祖先 思想#xff1a;和二叉树的公共最近祖先节点的思路基本一致的#xff01;就是不用从下往上遍历处理#xff01;可以利用的二叉搜索树的特点从上往下处理了#xff01;而且最近公共节点肯定是第一个出现在【q#xff0c;p】这个区间的内的和二叉树的公共最近祖先节点的思路基本一致的就是不用从下往上遍历处理可以利用的二叉搜索树的特点从上往下处理了而且最近公共节点肯定是第一个出现在【qp】这个区间的内的 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution:def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) - TreeNode:return self.lowestCommonAncestor1(root, p, q)def lowestCommonAncestor1(self, root: TreeNode, p: TreeNode, q: TreeNode) - TreeNode:# 二叉搜索树是有序的不同于二叉树的公共祖先需要从下往上遍历# 而且公共节点一定会出现在【pq】之前我们递归遍历最先出现在这个区间就是公共祖先节点了if root is None:return root# 处理中节点了if root.val q.val and root.val p.val: # 处理左节点left self.lowestCommonAncestor(root.left, p, q)if left is not None:# if not left: 这种用来判断节点不对的return leftif root.val q.val and root.val p.val:right self.lowestCommonAncestor(root.right, p, q)if right is not None:return rightreturn root701. 二叉搜索树中的插入操作 思路只要按照二叉搜索树的规则去遍历遇到空节点就插入节点就可以了!通过递归函数返回值完成了新加入节点的父子关系赋值操作了下一层将加入节点返回本层用root-left或者root-right将其接住 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def insertIntoBST(self, root: Optional[TreeNode], val: int) - Optional[TreeNode]:if root is None:node TreeNode(val)# root nodereturn nodeif root.val val:root.left self.insertIntoBST(root.left, val) # 左if root.val val:root.right self.insertIntoBST(root.right, val) # 有# 中return root 450. 删除二叉搜索树中的节点 思路对于这种增删的使用root.left and root.right来接受返回的节点值的返回值来加入新节点 这里也可以通过递归返回值删除节点搜索树不用限定是用前中后序遍历根据搜索树有序规则遍历就好了但是还是要有递归三部曲的 确定单层递归的逻辑 这里就把二叉搜索树中删除节点遇到的情况都搞清楚。 有以下五种情况 第一种情况没找到删除的节点遍历到空节点直接返回了找到删除的节点 第二种情况左右孩子都为空叶子节点直接删除节点 返回NULL为根节点第三种情况删除节点的左孩子为空右孩子不为空删除节点右孩子补位返回右孩子为根节点第四种情况删除节点的右孩子为空左孩子不为空删除节点左孩子补位返回左孩子为根节点第五种情况左右孩子节点都不为空则将删除节点的左子树头结点左孩子放到删除节点的右子树的最左面节点的左孩子上返回删除节点右孩子为新的根节点。 第五种情况有点难以理解看下面动画 class Solution:def deleteNode(self, root, key):if root is None:return root# 单层逻辑if root.val key:if root.left is None and root.right is None:return Noneelif root.left is None:return root.rightelif root.right is None:return root.leftelse:cur root.rightwhile cur.left is not None:cur cur.leftcur.left root.leftreturn root.rightif root.val key: # 左root.left self.deleteNode(root.left, key)if root.val key: # 右root.right self.deleteNode(root.right, key)return root
http://www.w-s-a.com/news/675341/

相关文章:

  • 网站搭建联系方式太平阳电脑网网站模板
  • 请简述网站制作流程html5网络公司网站模板
  • 海尔集团企业网站建设分析重庆市建设银行网站
  • 介绍公司的网站有哪些广西壮族自治区
  • 网站做rss wordpress9 1短视频安装软件
  • 网站建设价格西安室内设计网站排行榜前十名知乎
  • 用nas建设服务器网站用vs做音乐网站
  • 天津市武清区住房建设网站网站自适应框架
  • 制作移动网站公司网站开发职业规划
  • 网站头部怎样做有气势wordpress 页面 锚
  • 秦皇岛网站建设系统推荐个人网站免费制作
  • 我做夫人那些年网站登录wordpress 扫码付费
  • 网站关键词代码怎么做公司 网站建设
  • 哈尔滨多语言网站建设wordpress分类链接
  • 购物网站项目介绍软件开发流程的五大步骤
  • 做的网站怎么放在网上2008 iis搭建网站
  • 网站维护服务公司上海兼职网站制作
  • 企业做网站需要多少钱湘潭九华网站
  • 嘉兴建站服务微营销官网
  • 比较好的网页模板网站浦项建设(中国)有限公司网站
  • 有趣的个人网站网页设计与制作的岗位职责
  • 有建设网站的软件吗长沙做网站的公司对比
  • 网站的外链接数中铝长城建设有限公司网站
  • 北京建设网站公司网站建设费用 无形资产
  • 适合seo的建站系统如何建立网页
  • 我想自己建立一个网站给大家分享个永久免费的云服务器
  • 怎样做网站和网站的友情链接官网优化 报价
  • 购买网站空间大小聊城网站空间公司
  • 做像美团淘宝平台网站多少钱开发网站企业
  • 网站建设前期费用二手购物网站策划书