leetcode 530.二叉搜索树的最小绝对差
问题描述
给你一个二叉搜索树的根节点 root
,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
示例 1:
输入:root = [4,2,6,1,3]
输出:1
示例 2:
输入:root = [1,0,48,null,null,12,49]
输出:1
提示:
- 树中节点的数目范围是
[2, 104]
0 <= Node.val <= 105
核心思路
二叉搜索树中序遍历得到的值序列是递增有序的,我们可以在中序遍历的过程中用 变量保存前驱节点的值,边遍历边计算差值更新答案。
需要注意的是 的初始值需要设置成任意负数标记开头,下文代码中设置为 −1。
code
1 | class Solution { |
-
时间复杂度:,其中 n 为二叉搜索树节点的个数。每个节点在中序遍历中都会被访问一次且只会被访问一次,因此总时间复杂度为 。
-
空间复杂度:。递归函数的空间复杂度取决于递归的栈深度,而栈深度在二叉搜索树为一条链的情况下会达到 级别。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小狐狸的被窝!
评论
WalineValine