跳过正文
  1. leetcode 题解/

783_二叉搜索树节点最小距离

·48 字·1 分钟

类型:树

    1. 二叉搜索树节点最小距离 💚

    https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/

    ❓ 给你一个二叉搜索树,返回树中两个不同结点差值的最小值。

    💡 中序遍历

    搜索树中序遍历之后就得到了升序排列的数组,然后遍历数组,计算所有相邻元素差值,返回其中最小值。

    class Solution:
        def minDiffInBST(self, root: TreeNode) -> int:
            if not root:
                return 0
    
            inorderArr = []
    
            def inorderTraverse(node):
                if not node:
                    return
                inorderTraverse(node.left)
                inorderArr.append(node.val)
                inorderTraverse(node.right)
    
            inorderTraverse(root)
            return min(inorderArr[i + 1] - inorderArr[i] for i in range(len(inorderArr) - 1))

    时间复杂度:O(n),空间复杂度:O(n)