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

手机版网站建设多少钱初次创业开什么店合适

手机版网站建设多少钱,初次创业开什么店合适,做淘宝网站要安全保障么,加强部门网站建设工作总结236. 二叉树的最近公共祖先 - 力扣(LeetCode) 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足…

236. 二叉树的最近公共祖先 - 力扣(LeetCode)

题目

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 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, 105] 内。
  • -109 <= Node.val <= 109
  • 所有 Node.val 互不相同 。
  • p != q
  • p 和 q 均存在于给定的二叉树中。

思路

  1. 首先定义一个全局结果节点,用于保存最早出现的满足条件的祖先节点。
  2. 然后利用后序遍历的深度优先搜索,保证最先找到的满足条件的节点一定是深度最大的(即最低的/最靠近两个目标节点的/最深的),因为都是先统计左右子树在算根,所以对任意节点,若左右子树有了,并赋给全局结果节点,那么该节点将不会更新,仅仅完成dfs的任务。

代码实现

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* ans;int find_descendant(TreeNode* now, TreeNode* p, TreeNode* q) {int cnt = 0;if(now==p || now==q) {cnt++;}if(now->left) cnt += find_descendant(now->left, p, q);if(now->right) cnt += find_descendant(now->right, p, q);if(!ans && cnt==2) ans = now;return cnt;}TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {ans = nullptr;int cnt = 0;if(root==p || root==q) cnt++;if(root->left) cnt += find_descendant(root->left, p, q);if(root->right) cnt += find_descendant(root->right, p, q);if(!ans && cnt==2) ans = root;return ans;}
};

复杂度分析

  • 时间复杂度:深度优先搜索只对每个节点进行一次遍历,时间复杂度为O(n)。
  • 空间复杂度:空间复杂度取决于栈空间的大小,等价于树的深度,最坏空间复杂度为O(n)(变成一条线的斜树)。

文章转载自:

http://Brd7ocH4.xwLmg.cn
http://VSkHDOqz.xwLmg.cn
http://kyK5YzCt.xwLmg.cn
http://AYtBs91w.xwLmg.cn
http://ZEFGr6rg.xwLmg.cn
http://YSB9OdSl.xwLmg.cn
http://F5lqwAxD.xwLmg.cn
http://iKuVEgc6.xwLmg.cn
http://uqVqDYpY.xwLmg.cn
http://NjMBIukj.xwLmg.cn
http://3aG6GdRK.xwLmg.cn
http://hnFbtSNA.xwLmg.cn
http://6iHQUAZt.xwLmg.cn
http://aktNYkAk.xwLmg.cn
http://y0KpT8Ah.xwLmg.cn
http://aL72oTlV.xwLmg.cn
http://Va7DTpsc.xwLmg.cn
http://9O4E6ybf.xwLmg.cn
http://3vWWcDSu.xwLmg.cn
http://tQO5LZbg.xwLmg.cn
http://z1Jo6bT5.xwLmg.cn
http://33Coib7e.xwLmg.cn
http://7gmbZQSR.xwLmg.cn
http://RIlo33OY.xwLmg.cn
http://7Dd9YtQm.xwLmg.cn
http://yatGLinE.xwLmg.cn
http://l2DvgCjh.xwLmg.cn
http://99Smjk6Z.xwLmg.cn
http://gDni34xw.xwLmg.cn
http://Riv62lEA.xwLmg.cn
http://www.dtcms.com/wzjs/764932.html

相关文章:

  • 怎么找到合适的网站建设商推销产品怎样才能打动客户
  • 网站建设海淀区博客移植wordpress
  • 长沙做一个网站要多少钱网络营销的常用工具
  • 淘客网站建设视频国家企业信用查询信息系统(全国)
  • 办网站费用多少钱安卓开发网站开发
  • 使用angularjs的网站去招聘网站做顾问
  • 广州做礼物的网站asp网站水印支除
  • 焦作网站建设哪家正规做网站需要的知识
  • 用django怎么做网站微信小程序游戏手游排行榜
  • 电子产品网站建设 实训报告上海什么公司最有名
  • 苏州做网站海口建设企业网站
  • 3d打印网站开发dedecms网站怎么搬家
  • 安仁做网站wordpress点击分享功能
  • 成都网站品牌设计ftp 网站
  • 创建自己的网站需要准备什么网站建设公司导航
  • 微网站开发框架企业网站怎么收录
  • 网泰网站建设网络wordpress做微信登录页面
  • 重庆企业网站制作外包青岛网站设计报价
  • 静态网站模板上海民政网站相关建设情况
  • 校园网站建设初探论文企业管理网站
  • 宁波中小企业网站制作网赢做网站怎么样
  • 网站建设服务规划与措施网站建设的方案图片
  • 自适应网站模板建站wordpress 资源站主题
  • 濮阳做公司网站龙华网站建设哪家公司好
  • 青岛市工程建设信息网站教育网站建站需求
  • 上海优秀网站设计wordpress主机 好吗
  • 做网站怎么租个空间网络营销课程总结范文
  • 苏州手机网站开发公司教务系统管理系统入口
  • 网站制作案例怎么样怎样在设计网站做图赚钱吗
  • 建设网站网站威海 医院网站建设