aboutsummaryrefslogtreecommitdiff
path: root/lowest_common_ancestor_bst.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lowest_common_ancestor_bst.cpp')
-rw-r--r--lowest_common_ancestor_bst.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/lowest_common_ancestor_bst.cpp b/lowest_common_ancestor_bst.cpp
new file mode 100644
index 0000000..d496c2c
--- /dev/null
+++ b/lowest_common_ancestor_bst.cpp
@@ -0,0 +1,17 @@
+#include "leetcode.h"
+
+class Solution {
+public:
+ TreeNode *lowestCommonAncestor(TreeNode *root, TreeNode *p, TreeNode *q) {
+ int small = min(p->val, q->val), large = max(p->val, q->val);
+ while (root != nullptr) {
+ if (root->val > large)
+ root = root->left;
+ else if (root->val < small)
+ root = root->right;
+ else
+ return root;
+ }
+ return nullptr;
+ }
+};