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 v and w as the lowest node in t that has both v and w as descendants where we allow a node to be a descendant of itself 6 2 8 0 4 7 9 3 5 for example the lowest common ancestor lca of nodes 2 and 8 is 6 another example is lca of nodes 2 and 4 is 2 since a node can be a descendant of itself according to the lca definition type root node type p node type q node rtype node type root node type p node type q node rtype node
def lowest_common_ancestor(root, p, q):
    
    while root:
        if p.val > root.val < q.val:
            root = root.right
        elif p.val < root.val > q.val:
            root = root.left
        else:
            return root