题解 | #二叉搜索树的最近公共祖先#
二叉搜索树的最近公共祖先
http://www.nowcoder.com/practice/d9820119321945f588ed6a26f0a6991f
二叉搜索树
根据二叉树性质,只用走一次
/**
- struct TreeNode {
- int val;
- struct TreeNode *left;
- struct TreeNode *right;
- TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
- };
/
class Solution {
public:
/*
-
代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
-
@param root TreeNode类
-
@param p int整型
-
@param q int整型
-
@return int整型 / bool flag=false; int ans=0; void find(TreeNode r,int p,int q){ if(!r||flag) return; if(r->val==q||r->val==p) { flag=true; ans=r->val; return; } if(r->val>q&&r->val>q){ find(r->left,p,q); } if(r->val<q&&r->val<q){ find(r->right,p,q); } if(r->val<q&&r->val>p||r->val>q&&r->val<q){ flag=true; ans=r->val; return; }
-