gumgum's Garden🌼

Inorder Successor and Predecessor in BST

defĀ predecessorSuccessor(root,Ā key):
    prev = -1
    succ = -1
    defĀ helper(node):
        nonlocalĀ prev,nex
        ifĀ nodeĀ isĀ None:
            return
        ifĀ key < node.data:
            succ = node.data
            helper(node.left)
        elifĀ key > node.data:
            prev = node.data
            helper(node.right)
        else:
            helper(node.left)
            helper(node.right)
    helper(root)
    returnĀ [prev, succ]