Day18
530.二叉搜索树的最小绝对差
题目虽然说,要去找任意两个节点值的最小差值,但是因为这个是二叉搜索树,最小差值只会存在两个相邻节点之间,所以我们着手于相邻节点就行了。
暴力法
通过中序遍历,把二叉搜索树转换成有序数组,然后对数组进行遍历,计算相邻元素的最小差值
双指针法
class Solution { private: int rusult = INT_MAX; TreeNode* pre = NULL; //中序遍历 void traversal(TreeNode* cur){ if(cur == NULL) return; traversal(cur -> left); if(pre != NULL){ result = min(result, (cur -> val) - (pre -> val)); } pre = cur; traversal(cur -> right); } public: int getMinimumDifference(TreeNode* root) { traversal(root); return result; } };