Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.
Example:
Input: 1
\
3
/
2 Output:
1 Explanation:
The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).
Note: There are at least two nodes in this BST.
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None class Solution(object):
def getMinimumDifference(self, root):
"""
:type root: TreeNode
:rtype: int
"""
diff=10000
stack=[]
node=root
lastvisited=None
while node is not None or stack:
while node:
stack.append(node)
node=node.left
node=stack.pop()
if node is not None and lastvisited is not None:
diff=min(diff,abs(node.val-lastvisited.val))
lastvisited=node
node=node.right return diff