class newNode:
def __init__(self, key):
self.key = key
self.left = self.right = None
def minimumDistanceHelper(root, node, closest):
if(root is None):
return
if(root.left is None and root.right is None):
if(abs(closest-node.key)>abs(node.key-root.key)):
closest = root.key
print("closest:", closest)
else:
minimumDistanceHelper(root.left, node, closest)
minimumDistanceHelper(root.right, node,closest)
def minimumDistance(root, node):
if(root is None):
return float('inf')
closest = root.key
minimumDistanceHelper(root, node, closest)
return closest
# Driver Code
if __name__ == '__main__':
# Let us create Binary Tree shown
# in above example
root = newNode(10)
root.left = newNode(12)
root.right = newNode(13)
root.right.left = newNode(14)
root.right.right = newNode(15)
root.right.left.left = newNode(21)
root.right.left.right = newNode(22)
root.right.right.left = newNode(23)
root.right.right.right = newNode(24)
root.right.left.left.left = newNode(1)
root.right.left.left.right = newNode(2)
root.right.left.right.left = newNode(3)
root.right.left.right.right = newNode(4)
root.right.right.left.left = newNode(5)
root.right.right.left.right = newNode(6)
root.right.right.right.left = newNode(7)
root.right.right.right.right = newNode(8)
x = root.right
print("The closest leaf to the node with value", x.key, "is at a distance of", minimumDistance(root, x))
I want to print closest leaf node to a particular node in a binary tree. I am getting the correct answer in the function defined but I am not able to return that answer. Link to question: https://www.geeksforgeeks.org/closest-leaf-to-a-given-node-in-binary-tree/