当前位置:网站首页>【日常训练--腾讯精选50】235. 二叉搜索树的最近公共祖先
【日常训练--腾讯精选50】235. 二叉搜索树的最近公共祖先
2022-07-07 00:03:00 【Puppet__】
题目
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]
示例 1:
输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6
解释: 节点 2 和节点 8 的最近公共祖先是 6。
示例 2:
输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。
说明:
所有节点的值都是唯一的。
p、q 为不同节点且均存在于给定的二叉搜索树中。
代码
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */
class Solution {
// 同时找到达p、q的路径,找两个路径的分岔点,充分利用二叉搜索树的性质
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
TreeNode ansNode = root;
while(true){
if(p.val < ansNode.val && q.val < ansNode.val){
ansNode = ansNode.left;
}
else if(p.val > ansNode.val && q.val > ansNode.val){
ansNode = ansNode.right;
}
// 路径分叉了,该点为最近公共祖先
else{
break;
}
}
return ansNode;
}
}
边栏推荐
- The 2022 China low / no code Market Research and model selection evaluation report was released
- 关于服装ERP,你知道多少?
- JVM (XX) -- performance monitoring and tuning (I) -- Overview
- TCC of distributed transaction solutions
- Polynomial locus of order 5
- Aidl and service
- [JS component] custom select
- Paper reading [open book video captioning with retrieve copy generate network]
- What is message queuing?
- How does mapbox switch markup languages?
猜你喜欢
随机推荐
Unity keeps the camera behind and above the player
Differences and introduction of cluster, distributed and microservice
An example of multi module collaboration based on NCF
[论文阅读] A Multi-branch Hybrid Transformer Network for Corneal Endothelial Cell Segmentation
pytorch_ 01 automatic derivation mechanism
常用消息队列有哪些?
How Alibaba cloud's DPCA architecture works | popular science diagram
Five core elements of architecture design
什么是消息队列?
导航栏根据路由变换颜色
Design, configuration and points for attention of network arbitrary source multicast (ASM) simulation using OPNET
Web architecture design process
Unity让摄像机一直跟随在玩家后上方
How digitalization affects workflow automation
ssm框架的简单案例
《ClickHouse原理解析与应用实践》读书笔记(6)
三级菜单数据实现,实现嵌套三级菜单数据
关于服装ERP,你知道多少?
集群、分布式、微服務的區別和介紹
JD commodity details page API interface, JD commodity sales API interface, JD commodity list API interface, JD app details API interface, JD details API interface, JD SKU information interface









