235. Lowest Common Ancestor of a Binary Search Tree
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/

Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself).”
Given binary search tree: root = [6,2,8,0,4,7,9,null,null,3,5]

Example 1:
Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 Output: 6 Explanation: The LCA of nodes2and8is6.
Example 2:
Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4 Output: 2 Explanation: The LCA of nodes2and4is2, since a node can be a descendant of itself according to the LCA definition.
Note:
- All of the nodes' values will be unique.
- p and q are different and both values will exist in the BST.
---
Clarifying questions
Is a solution guaranteed
Are p, q guaranteed to exist in the tree
If nodes are in direct parent, child, which node is answer ?
Intuition
Binary Search Tree - All nodes to left are less than root, all nodes to right are greater than root
Goal - find first node from top, which is between p, and q
if both p, q are less than root, recurse left
if both p, q are greater than root, recurse right
otherwise the root lies between p, q and return root
---
Complexity
Space - O(N) - worst case - skewed tree - all nodes in one line
Time - O(N)
---