题目:寻找最低祖先
分析:根据二叉排序树的特点,判断该结点与给定结点的关系,在两者之间,则就是该点;比大的大,在做孩子结点递归;比小的小,在右孩子结点递归。
参考代码:
struct TreeNode* lowestCommonAncestor(struct TreeNode* root, struct TreeNode* p, struct TreeNode* q) {
struct TreeNode* k;
k=root;
int m,n;
m=p->val>q->val?p->val:q->val;
n=p->val<q->val?p->val:q->val;
if(k->val<=m&&k->val>=n)
{
return k;
}
if(k->val>m)
{
return lowestCommonAncestor(k->left, p, q);
}
if(k->val<n)
{
return lowestCommonAncestor(k->right, p, q);
}
}