530. 二叉搜索树的最小绝对差

2019-05-10  本文已影响0人  好吃红薯

给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。

示例 :

输入:

1

3
/
2

输出:
1

解释:
最小绝对差为1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。
思路: 前序遍历所有节点,存入list,排序,找最小

# 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
        """
        res = []
        iterable(root,res)
        
        
        
        M = 65535
        
        res.sort()
        for i in range(1,len(res)):
            M = min(M,res[i]-res[i-1])
            
        return M   
    
def iterable(node,res):
    if not node:
        return
    
    res.append(node.val)
    if node.left or node.right:
        if node.left:
            iterable(node.left,res)
        if node.right:
            iterable(node.right,res)
上一篇 下一篇

猜你喜欢

热点阅读