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;}
};