「这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战」
530. 二叉搜索树的最小绝对差
题目描述
给你一个二叉搜索树的根节点 root
,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
示例 1:
1 | ini复制代码输入: root = [4,2,6,1,3] |
示例 2:
1 | csharp复制代码输入: root = [1,0,48,null,null,12,49] |
递归法
遇到在二叉搜索树上求最值,求差值之类的问题,都要考虑到二叉搜索树有序的,要充分利用好这一特点。利用中序遍历可以得到一个有序的递增数组,在通过数组来获得想要的值
- 递归法1 : 中序递归遍历,使用数组存储每个节点的值。遍历数组,相邻的两个数作差,得到差值的最小值。
- 递归法2 : 中序递归遍历,使用
pre
指针,指向当前遍历结点的前一个结点,在遍历的过程中计算最小差值。
递归法1
1 | c++复制代码#define MAX_INT 65536 |
递归法2
1 | c++复制代码#define MAX_INT 65536 |
本文转载自: 掘金