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

夏天做哪个网站致富响应式布局的原理

夏天做哪个网站致富,响应式布局的原理,网站开发私活,商城定制开发一、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为#xff1a;“对于有根树 T 的两个节点 p、q#xff0c;最近公共祖先表示为一个节点 x#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大#xff08;一个节点也…一、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为“对于有根树 T 的两个节点 p、q最近公共祖先表示为一个节点 x满足 x 是 p、q 的祖先且 x 的深度尽可能大一个节点也可以是它自己的祖先。” 示例 1 输入root [3,5,1,6,2,0,8,null,null,7,4], p 5, q 1 输出3 解释节点 5 和节点 1 的最近公共祖先是节点 3 。示例 2 输入root [3,5,1,6,2,0,8,null,null,7,4], p 5, q 4 输出5 解释节点 5 和节点 4 的最近公共祖先是节点 5 。因为根据定义最近公共祖先节点可以为节点本身。示例 3 输入root [1,2], p 1, q 2 输出1提示 树中节点数目在范围 [2, 10^5] 内。-10^9 Node.val 10^9所有 Node.val 互不相同 。p ! qp 和 q 均存在于给定的二叉树中。 二、解题思路 如果当前节点为空或者当前节点是 p 或 q 中的一个那么返回当前节点。递归地在左子树中查找 p 和 q 的最近公共祖先。递归地在右子树中查找 p 和 q 的最近公共祖先。如果左子树和右子树中分别找到了 p 和 q那么当前节点就是最近公共祖先。如果只在左子树中找到了 p 和 q 中的一个或两个那么最近公共祖先一定在左子树中返回左子树的查找结果。如果只在右子树中找到了 p 和 q 中的一个或两个那么最近公共祖先一定在右子树中返回右子树的查找结果。 三、具体代码 class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {// 如果当前节点为空或者当前节点是 p 或 q直接返回当前节点if (root null || root p || root q) {return root;}// 递归地在左子树中查找 p 和 q 的最近公共祖先TreeNode left lowestCommonAncestor(root.left, p, q);// 递归地在右子树中查找 p 和 q 的最近公共祖先TreeNode right lowestCommonAncestor(root.right, p, q);// 如果左子树和右子树中分别找到了 p 和 q那么当前节点就是最近公共祖先if (left ! null right ! null) {return root;}// 如果只在左子树中找到了 p 和 q那么最近公共祖先一定在左子树中if (left ! null) {return left;}// 如果只在右子树中找到了 p 和 q那么最近公共祖先一定在右子树中return right;} }四、时间复杂度和空间复杂度 1. 时间复杂度 单次访问节点对于树中的每个节点我们最多只会访问它一次。在递归函数中每个节点都会被访问一次然后它的子节点会被递归地访问。 递归深度在最坏的情况下递归的深度会达到树的高度。在二叉树中最坏情况是树退化成一条链此时递归深度为 nn 是树中节点的数量。 因此时间复杂度是 O(n)其中 n 是树中节点的数量。 2. 空间复杂度 递归调用栈由于递归的特性在递归过程中函数调用栈会保存每一层递归的信息。在最坏情况下递归的深度会达到树的高度。 递归深度与空间复杂度的关系在最坏的情况下如果树是一条链那么递归的深度就是 n此时递归调用栈将占用 O(n) 的空间。 因此空间复杂度是 O(n)其中 n 是树中节点的数量。 综上所述 时间复杂度O(n)因为每个节点最多被访问一次。空间复杂度O(n)因为递归调用栈在最坏情况下可能达到 n 的深度。 五、总结知识点 递归 递归是一种常用的算法设计方法它允许函数调用自身来解决问题。在这个代码中递归用于遍历二叉树并查找两个节点的最近公共祖先。 二叉树遍历 代码通过递归实现了二叉树的遍历具体是后序遍历先访问左右子节点再访问根节点。遍历过程中如果找到了 p 或 q 节点则递归函数会返回该节点。 逻辑判断 代码包含了多个 if 语句用于判断递归函数返回的节点是否为空从而确定最近公共祖先的位置。 树的结构 代码操作的数据结构是二叉树树中的每个节点包含值val、左子节点left和右子节点right。 最近公共祖先的定义 代码实现了一个基于最近公共祖先定义的算法即对于两个节点 p 和 q找到它们在二叉树中的最低最深的共同祖先。 边界条件处理 代码首先检查了边界条件即当前节点是否为空或等于 p 或 q这确保了递归的基本情况。 递归与回溯的结合 在递归过程中通过回溯递归返回的方式将子树中的信息传递给父节点以便在父节点做出决策。 以上就是解决这个问题的详细步骤希望能够为各位提供启发和帮助。
http://www.w-s-a.com/news/725486/

相关文章:

  • 网站建设的重点是什么注册网站空间
  • 网站公司企业宗旨我的网站 dedecms
  • 沧州网站优化做详情图的网站
  • 中国建设银行公积金网站wordpress表单 post
  • 找权重高的网站方法wordpress视频网站上传视频
  • 营销型网站架构师迁移wordpress500错误
  • 做网站还是博客由()承担
  • wordpress 导购站模板中国最新军事新闻直播83军
  • 公众号h5网站开发wordpress文章主图
  • ps怎么艺术字字体设计网站我想自己做网站
  • 北京做机柜空调的网站模板网站和插件
  • 手机购物网站模板wordpress添加分类文档
  • 网站开发知识网上怎么申请个人营业执照
  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录
  • 学seo朝阳区seo
  • 网站开发团队成员皮具网站建设
  • 国外外贸需求网站响应式布局网页