783. 二叉搜索树节点最小距离¶
最后更新:2024-05-10-22
链接:https://leetcode.cn/problems/minimum-distance-between-bst-nodes/description/
题目描述
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
题目示例
输入: root = [4,2,6,1,3]
输出: 1
输入: root = [1,0,48,null,null,12,49]
输出: 1
提示:
- 树中节点的数目范围是 \([2, 100]\)
- \(0 <= Node.val <= 10^5\)
- 注意:本题与 530:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/ 相同
思路
首先要想到二叉搜索树的特点,对于所有node,node->left以及子树的值都比node值小,node->right以及子树的值都比node值大。
对于node节点,满足题目条件的只有以下几种情况:
- node->left 或者 node->right 就是尾节点,后面再没有子树了,那么以node为根节点的二叉搜索树,满足题目条件的只有两个值,最最小即可;
- node->val - node->left->val
- node->right->val - node->val;
- node->left 不是尾节点,根据二叉树的特点,与node差值最小的值只能是left子树中最右端的值,即:node->left->right.....->right->val;
- 同样的,对于右侧子节点也是一样,与node差值最小的应该是node->right->left.........->left->val
Go | |
---|---|