天天看點

leetcode(力扣) 530. 二叉搜尋樹的最小絕對差

題目在這​​:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/​​

思路在這:

這題有個小坑。我上來直接給所有節點全推進數組了,然後排序了數組,取了一号位減零号位的內插補點,發現不對。

題目中要求的是任意兩個節點直接的內插補點絕對值的最小值。

  • 用先序或者中序後序等将所有節點的值推入數組中。
  • 對數組進行排序
  • 周遊整個數組,計算出來每兩個數直接的內插補點。并記錄最小值輸出、
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def getMinimumDifference(self, root: TreeNode) -> int:
            res = []
            def dfs(root):
                if not root:
                    return
                res.append(root.val)
                dfs(root.left)
                dfs(root.right)
            dfs(root)
            res.sort()
            temp = res[1]-res[0]
            for i in range(len(res)-1):
                temp = min(temp,res[i+1]-res[i])
            return