Given a binary search tree (BST), find the lowest common ancestor (LCA) node 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).'
BST Property Split
In a Binary Search Tree (BST), if `p` and `q` are both smaller than the current node, the LCA must be in the left subtree. If they are both larger, the LCA must be in the right subtree. If one is smaller (or equal) and the other is larger (or equal), then the current node IS the LCA (the split point).