题目描述
给定一个二叉搜索树的根节点 root,返回树中任意两节点的差的最小值。
C++
思路,将最小值设为成员变量,因为是二叉搜索树,所以其中序遍历刚好是升序,在递归过程中记录相邻值得差值,求最小就好。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
/*
BST的中序遍历结果为节点值升序结果,所以最小距离为升序结果相邻两数的差,所以可以在递归生成中序遍历时求最小差值,从结果集中有两个节点结果时开始计算,求出最小值
递归:
停止条件:节点为空
返回什么: 只是遍历,什么也不用返回
本级递归干什么:中序遍历,并且求相邻节点得差值,记录最小差值,
*/
class Solution