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

网站建设 工作建议上海网站排名seo公司

网站建设 工作建议,上海网站排名seo公司,wordpress 微博图床,柳州企业网站建设二叉搜索树的最近公共祖先 力扣题目链接 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且…

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

力扣题目链接

题目描述

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

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

解题思路

这道题完全可以套上一题的答案,所以这里我就写了一个更加体现出二叉搜索树的答案。
感兴趣的可以看上一题算法-二叉树篇21-二叉树的最近公共祖先

大致步骤如下:

  • 首先确定借助二叉搜索树的特性来解决,那么我们需要一个寻找目标节点的方法,这方法传入根节点和目标节点;
  • 然后根据目标节点和根节点的大小关系向下遍历,直到寻找到该节点;
  • 在寻找的过程中,把遍历过的节点存入队列中,然后返回;
  • 主函数中,我们得到了两个节点的路径队列,然后寻找两个队列最后一个相等的节点,就是答案。

题解

class Solution {
public:queue<TreeNode*> find(TreeNode* root, TreeNode* p){queue<TreeNode*> ans;ans.push(root);TreeNode* cur = root;while(cur != p){if(cur->val > p->val){cur = cur->left;}else {cur = cur->right;}ans.push(cur);}return ans;}TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {TreeNode* ans = root;queue<TreeNode*> q1;queue<TreeNode*> q2;q1 = find(root, p);q2 = find(root, q);while(!q1.empty() && !q2.empty()){if(q1.front() == q2.front()){ans = q1.front();q1.pop();q2.pop();}else {break;}}return ans;}
};

总结

这种公共祖先的题目,主要还是需要目标节点的路径,但是对于上一条来说,因为我们不知道目标节点的位置,如果存储下所有路径会占用很多内存,所以我们是采用递归的方式去反向遍历确定答案。这道题由于我们可以知道寻找目标节点的正确路径,所以我们可以直接存下该路径,减少了程序运行时不必要的时间开销。

http://www.dtcms.com/a/488761.html

相关文章:

  • 软件开发公司需要什么硬件设备大型seo公司
  • 域名查询ip福州seo关键词排名
  • 多周期框架中不同时间粒度的检验指标可比性
  • 收录网站源码开网店需要什么条件
  • 济南设计网站有没有专门做老年婚介的网站
  • 代做单片机毕业设计网站自建网站营销是什么
  • 吉林城市建设学校网站北京创意网站设计
  • 有口碑的宜昌网站建设什么网站都有漏洞
  • 漂亮购物网站欣赏自建 wordpress
  • 企业制作网站服务网站建设邀请招标书
  • 网站站点名中文网站数量
  • 自己做网站 如何推广joomla建站教程
  • 品牌网站建设内容框架成都网页设计美工培训
  • 吉林建设厅网站首页只放一个图片做网站
  • 免费在线观看电影网站自己开个网站
  • C++day14(while语句)
  • 建设企业网站需要什么免费房地产网站模板
  • 网站的内连接如何做手机房屋设计软件app
  • 响应式网站底部怎么做湛江网站
  • 珠宝网站策划建一个网站带管理需要多少钱一年
  • 公司网站建设需要咨询什么问题centos 6.5 wordpress
  • 滨海专业做网站网站制作客户资料
  • 平泉市住房和城乡建设局网站天津数字防疫
  • 网站推广策划思路企业网站的短视频中心模板
  • VLAN 间单臂路由配置
  • 论坛网站建设规划书百度收录收费 重大网站
  • c 网站开发项目教程徐州人才网官方网站
  • 国家建设部网站官网wordpress飘雪插件
  • sirna在线设计网站电商电商网站建设
  • 网站被k文章修改.net如何建设网站