二叉搜索树的最近公共祖先_牛客题霸_牛客网
vector<int>getPath(TreeNode* root, int target)
{
TreeNode* node = root;
vector<int>path;
while(node->val != target)
{
path.push_back(node->val);
if(target < node->val)
node = node->left;
else
node = node->right;
}
path.push_back(node->val);
return path;
}
int lowestCommonAncestor(TreeNode* root, int p, int q)
{
vector<int >path_p;
vector<int >path_q;
int res;
path_p = getPath(root, p);
path_q = getPath(root, q);
for(int i=0; i<path_p.size() && i<path_q.size(); i++)
{
if(path_p[i] == path_q[i])
res = path_p[i];
else
break;
}
return res;
}