LeetCode 235--二叉搜索树的最近公共祖先 ( Lowest Common Ancestor of a Binary Search Tree ) ( C语言版 )
程序员文章站
2022-07-14 14:37:10
...
题目描述 :
解题思路 : 根据题目描述 , 会发现共同祖先要么是根节点 , 要么是左节点 ,要么是右节点 , 当给定的两个节点都大于根节点时 , 往右子树寻找 , 当两个节点都小于根节点时 , 往左子树寻找 ;
代码如下 :
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
struct TreeNode* lowestCommonAncestor(struct TreeNode* root, struct TreeNode* p, struct TreeNode* q) {
if(root==NULL)
return NULL;
while(root){
if(p->val>root->val&&q->val>root->val)
root=root->right;
else if(p->val<root->val&&q->val<root->val)
root=root->left;
else
return root;
}
return NULL;
}
上一篇: ArcGIS python计算长时间序列多个栅格数据的平均值
下一篇: 天池盐城汽车上牌预测