#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; }