Reccursive -> Maximum Reccursion Depth Exceeded
class Solution:
def __init__(self):
self.ceil = None
def getSuccessor(self, root, val):
if root == None:
return self.ceil
if root.val == val:
return self.getSuccessor(root.right,val)
if root.val < val:
return self.getSuccessor(root.right,val)
if root.val > val:
self.ceil = root
return self.getSuccessor(root.left,val)Iterative
class Solution:
def getSuccessor(self, root, val):
ceil = None
while root:
if root.val == val:
root = root.right
elif root.val < val:
root = root.right
else:
ceil = root
root = root.left
return ceil