LeetCode-Python-783. ツリーノードの最小距離を検索するには

1067 ワード

二叉探索ツリーのルートノードrootが与えられ、ツリー内の任意の2つのノードの差の最小値が返される.
例:
  : root = [4,2,6,1,3,null,null]
  : 1
  :
  ,root      (TreeNode object),     。

     [4,2,6,1,3,null,null]       :

          4
        /   \
      2      6
     / \    
    1   3  

       1,     1   2   ,     3   2   。

注意:
  • 二叉木の大きさは2100の範囲である.
  • ツリーは常に有効であり、各ノードの値は整数であり、繰り返しません.

  • 考え方:
    LeetCode-Python-530と二叉探索ツリーの最小絶対差はそっくりです.
    BST中シーケンスを用いて昇順の性質探索を遍歴した.
    class Solution(object):
        def minDiffInBST(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            def inorder(node):
                if not node:
                    return []
                return inorder(node.left) + [node.val] + inorder(node.right)
            
            res = 999999
            l = inorder(root)
            for i in range(1, len(l)):
                res = min(res, l[i] - l[i - 1])
                
            return res