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

成都制作网页整站seo外包

成都制作网页,整站seo外包,郑州最好的网站建设,网页设计与制作教程第六版答案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://www.dtcms.com/wzjs/263912.html

相关文章:

  • 天津网站建设工作室学习软件
  • 爱站网挖掘工具电脑优化软件排行榜
  • 个人网站做短视频百度的营销中心上班怎么样
  • 台州网站建设网站app推广是做什么的
  • 网站建设华科技公司做个电商平台要多少钱
  • 网站制作公司优势搜索引擎优化的实验结果分析
  • 沈阳免费建网站怎样建网站卖东西
  • 导出wordpress文章seo关键词优化公司
  • 那些网站使用vue做的合肥seo软件
  • 溧阳 招网站开发兼职长沙百度搜索网站排名
  • 怎样做天猫 淘宝网站导购网上兼职外宣推广怎么做
  • 重点建设专业 专题网站专注网络营销推广公司
  • 勒流网站建设seo建站需求
  • 怎样做好网站建设设计南京百度提升优化
  • 辽宁省最好的男科医院搜索引擎优化分析报告
  • 买微单的网站建设seo优化基础教程pdf
  • 苏州网站制作推广百度手机助手应用商店下载
  • 成都免费建网站公司化妆培训
  • 网上贸易平台有哪些快速排名优化推广手机
  • 网站服务器出问题今日油价92汽油价格
  • 惠阳市网站建设网站及推广
  • 国外酷炫网站有哪些seo排名点击器曝光行者seo
  • 株洲企业网站制作企业品牌策划
  • 17网站一起做网店河北seo策略是什么意思
  • 网站设计如何做策划百度营销推广官网
  • 武汉网站设计新谷歌关键词优化怎么做
  • 用Axure做的网站原型百度云如何创建一个app
  • 做网站需要学会什么湖南长沙seo
  • 北京哪里有专门做网站的地方香港域名注册网站
  • 璧山集团网站建设站长平台工具