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

北京市建设工程交易服务中心网站白云百度seo公司

北京市建设工程交易服务中心网站,白云百度seo公司,备案查询网站,购物网站建设网站1.问题 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是…

1.问题

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

百度百科中最近公共祖先的定义为:“对于有根树 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 均存在于给定的二叉树中。

2.解题思路

2.1 祖先的定义

若节点p位于root根节点的左或右子树,或者p就是root,则root为p的祖先。

2.2 最近公共祖先

设节点 root 为节点 p,q 的某公共祖先,若其左子节点 root.left 和右子节点 root.right 都不是 p,q 的公共祖先,则称 root 是 “最近的公共祖先” 。

对于二叉树中的节点p,q,只可能存在两种关系:

  • 父子(或祖孙)关系
  • 兄弟关系

2.3 父子关系

对于具有父子关系的节点p,q,存在两种情况:

  • 节点p是节点q的子孙节点,即节点p出现在节点q的左或右子树中,返回q即可
  • 节点q是节点p的子孙节点,即节点q出现在节点p的左或右子树中,返回p即可

2.4 兄弟关系

节点p,q分别出现在某节点的左子树或右子树中,返回该节点即可

3.代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {/*** 节点p和节点q只有两种关系:父子关系 兄弟关系* 父子关系: *       1.节点p是节点q的子孙节点,即节点p出现在节点q的左或右子树中;返回q即可;*       2.节点q是节点p的子孙节点,即节点q出现在节点p的左或右子树中;返回p即可;* 兄弟关系:*       节点p,q分别出现在某节点的左子树或右子树中;返回该节点即可;**/public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root==null||root==p||root==q){return root;}TreeNode leftRes=lowestCommonAncestor(root.left,p,q);TreeNode rightRes=lowestCommonAncestor(root.right,p,q);//p,q在某节点左子树和右子树中,返回根节点if(leftRes!=null&&rightRes!=null){return root;}return leftRes==null?rightRes:leftRes;}
}
http://www.zhongyajixie.com/news/6588.html

相关文章:

  • 龙岗网站建设方案网店运营工作内容
  • 电子商务网站建设与管理 学习感想北京网站建设开发公司
  • 网站建设任务关键词seo资源
  • wordpress子目录404专业网站优化外包
  • 酒店网络营销推广方案seo服务价格表
  • 吉林省做网站公司微博推广方式有哪些
  • 横向拖动的网站彼亿营销
  • wordpress怎么新建子域名做seo的公司
  • 网站可分析sem和seo是什么
  • 如何分析他人网站流量seo关键词优化案例
  • 游戏网站seo怎么做推广软件赚钱的平台
  • 京东网站建设流程和结构图自己怎么优化网站
  • 优秀网站设计书籍百度上的广告多少钱一个月
  • 成都那家做网站好怎么进行推广
  • 青岛网站设计哪家便宜上海百度竞价点击软件
  • 两个网站做反向代理网站代运营推广
  • 外国网站建设拓客app下载
  • angularjs做的网站有哪些湖人最新消息
  • wordpress批量添加tag南京seo全网营销
  • 火星建站和八亿建站北京百度seo公司
  • 物业公司网站模板优化大师是干什么的
  • 温州网站建设平台软文营销广告案例
  • 万网网站备案免费发布友链
  • 荣成城乡建设局网站今日军事新闻报道
  • 太原小店区最新消息今天seo外链怎么做
  • 剑网三奇遇查询网站怎么做济南市最新消息
  • 网站开发需求列表天眼查询个人
  • 手机网站建设的方法推广平台有哪些渠道
  • 手机网站制作天强科技短视频seo推广
  • 自己的网站怎么做砍价产品优化是什么意思