Python 3 code to find the Lowest Common Ancestor of a Binary Search Tree
def lowestCommonAncestor(root, p, q): """ :type root: TreeNode :type p: TreeNode :type q: TreeNode :rtype: TreeNode """ if root is None or p is None or q is None: return None if p.val > q.val: temp = p p = q q = temp current_node = root while current_node: if p.val <= current_node.val and current_node.val <= q.val: return current_node else: current_node = current_node.left if p.val < current_node.val else current_node.right return None
Hope it helps.