当前位置:网站首页>【日常训练--腾讯精选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;
}
}
边栏推荐
- async / await
- Design, configuration and points for attention of network unicast (one server, multiple clients) simulation using OPNET
- 分布式事务解决方案之2PC
- Nodejs get client IP
- 微信小程序蓝牙连接硬件设备并进行通讯,小程序蓝牙因距离异常断开自动重连,js实现crc校验位
- Modes of optical fiber - single mode and multimode
- 5. 数据访问 - EntityFramework集成
- Photo selector collectionview
- C nullable type
- Lombok插件
猜你喜欢
[论文阅读] Semi-supervised Left Atrium Segmentation with Mutual Consistency Training
DOM node object + time node comprehensive case
Initial experience of annotation
Leakage relay jelr-250fg
Design, configuration and points for attention of network specified source multicast (SSM) simulation using OPNET
An example of multi module collaboration based on NCF
三级菜单数据实现,实现嵌套三级菜单数据
《HarmonyOS实战—入门到开发,浅析原子化服务》
京东商品详情页API接口、京东商品销量API接口、京东商品列表API接口、京东APP详情API接口、京东详情API接口,京东SKU信息接口
得物客服一站式工作台卡顿优化之路
随机推荐
什么是依赖注入(DI)
Realize GDB remote debugging function between different network segments
Dynamic memory management
Flinksql 读写pgsql
5. 数据访问 - EntityFramework集成
AI人脸编辑让Lena微笑
Sidecar mode
Codeforces Round #416 (Div. 2) D. Vladik and Favorite Game
[binary tree] binary tree path finding
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
Taobao commodity details page API interface, Taobao commodity list API interface, Taobao commodity sales API interface, Taobao app details API interface, Taobao details API interface
R语言【逻辑控制】【数学运算】
Distributed global ID generation scheme
Preliminary practice of niuke.com (9)
Reading the paper [sensor enlarged egocentric video captioning with dynamic modal attention]
判断文件是否为DICOM文件
Lombok插件
Tablayout modification of customized tab title does not take effect
论文阅读【Semantic Tag Augmented XlanV Model for Video Captioning】
[论文阅读] Semi-supervised Left Atrium Segmentation with Mutual Consistency Training