当前位置:网站首页>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);
}
};
边栏推荐
- LeetCode_2632_字符串压缩
- 【软考 系统架构设计师】案例分析⑤ 质量属性和架构评估
- 十步以内,用小程序快速生成App!
- chart.js面积图曲线图统计插件
- Interviewer: How to deal with Redis big key?
- Presto Event Listener开发
- Install win7 virtual machine in Vmware and related simple knowledge
- R语言使用mean函数计算样本(观测)数据中指定变量的相对频数:计算时间序列数据中大于前一个观测值的观测值所占的比例总体的比例
- Space not freed after TRUNCATE table
- OFDM 十六讲 7 - Inter-Symbol-Interference
猜你喜欢
随机推荐
Good future, want to be a second new Oriental
迁移学习 & 凯明初始化
C. Mere Array
Arcgis工具箱无法使用,显示“XML包含错误“的解决方法
R语言将列表数据转化为向量数据(使用unlist函数将列表数据转化为向量数据)
Pytorch分布式训练/多卡训练DDP——模型初始化(torch.distribute 与 DDP的区别)
Kubernetes Service对象
How to insist to use procedural system?
CGLIB源码易懂解析
R语言ggplot2可视化:使用ggpubr包的ggscatter函数可视化散点图、使用scale_x_continuous函数的breaks参数指定X轴的断点的个数(设置参数n)
p5.js实现的炫酷星体旋转动画
Analyses the development status quo of stock trading
R语言拟合ARIMA模型并使用拟合模型进行预测推理:使用forecast函数计算ARIMA模型未来值(包含时间点、预测值、两个置信区间)
Janus Official DEMO Introduction
Vmware中安装win7虚拟机以及相关简单知识
Flutter 绘制美不胜收的光影流动效果
C. Omkar and Baseball
xlrd 与 xlsxwritter 的基本操作
&&、||、&、|
B. Neighbor Grid