二叉搜索树的最近公共祖先_牛客题霸_牛客网
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;elsenode = 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];elsebreak;}return res;}