当前位置:网站首页>Leetcode 235. 二叉搜索树的最近公共祖先
Leetcode 235. 二叉搜索树的最近公共祖先
2022-08-09 22:05:00 【LuZhouShiLi】
Leetcode 235. 二叉搜索树的最近公共祖先
题目
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
思路
- 确定递归函数返回值以及参数:参数就是当前节点,以及两个节点p,q
- 终止条件,遇到空值 直接返回即可
- 遍历二叉搜索树的时候就是寻找区间[p->val,q->val] 如果p->val > cur->val, 同时q->val > cur->val,那么遍历右子树,反之遍历左子树。
代码
/** * 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* traversal(TreeNode* cur,TreeNode *p,TreeNode *q)
{
if(cur == NULL)
{
return cur;
}
if(cur->val > p->val && cur->val > q->val)
{
// 递归左子树
TreeNode* left = traversal(cur->left,p,q);
if(left != NULL)
{
return left;
}
}
if(cur->val < p->val && cur->val < q->val)
{
// 递归右子树
TreeNode* right = traversal(cur->right,p,q);
if(right != NULL)
{
return right;
}
}
return cur;
}
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
return traversal(root,p,q);
}
};
边栏推荐
- 2022-8-9 第六组 输入输出流
- daemon
- 迁移学习 & 凯明初始化
- 【微信小程序开发(八)】音频背景音乐播放问题汇总
- Day 12 of learning to program
- 【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
- 【Burning】It's time to show your true strength!Understand the technical highlights of the 2022 Huawei Developer Competition in one article
- CGLIB源码易懂解析
- 干涉BGP的选路---社团属性
- three.js镂空圆球拖拽变形js特效
猜你喜欢
随机推荐
OFDM 十六讲 7 - Inter-Symbol-Interference
(转)FreeType字体位图属性
Socket发送缓冲区接收缓冲区快问快答
leetcode:325. 和等于k的最长子数组长度
JS中表单操作、addEventListener事件监听器
17-GuliMall 搭建虚拟域名访问环境
跨端技术方案选什么好?
Qt 消息机制和事件
Good future, want to be a second new Oriental
数字与中文大写数字互转(5千万亿亿亿亿以上的数字也支持转换)
HBuilder X 不能运行到内置终端
如何坚持使用程序化系统?
Flutter 绘制美不胜收的光影流动效果
Pytorch分布式训练/多卡训练DDP——模型初始化(torch.distribute 与 DDP的区别)
OSS文件上传
R语言ggplot2可视化:使用ggplot2可视化散点图、使用labs参数自定义Y轴的轴标签文本(customize Y axis labels)
【对象——对象及原型链上的属性——对象的操作方法】
R语言将列表数据转化为向量数据(使用unlist函数将列表数据转化为向量数据)
R语言修改dataframe数据列的名称:使用dplyr包的rename函数修改列名、使用colnmaes函数修改列名、在数据筛选的时候重命名列名
What is the stability of the quantitative trading interface system?









