[LeetCode&Python] Problem 530. Minimum Absolute Difference in BST

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

  

猜你喜欢

转载自www.cnblogs.com/chiyeung/p/10015989.html