16 lines
476 B
C++
16 lines
476 B
C++
#include "s0235_lowest_common_ancestor_of_a_binary_search_tree.hpp"
|
|
|
|
TreeNode* S0235::lowestCommonAncestor(TreeNode* root, TreeNode* p,
|
|
TreeNode* q) {
|
|
TreeNode* result = root;
|
|
while (!((p->val <= result->val && q->val >= result->val) ||
|
|
(q->val <= result->val && p->val >= result->val))) {
|
|
if (p->val < result->val) {
|
|
result = result->left;
|
|
} else {
|
|
result = result->right;
|
|
}
|
|
}
|
|
return result;
|
|
}
|