网站建设选择题,软件ui设计师,wordpress 文件重命名,建筑公司网站需求前言 题目#xff1a; 530. 二叉搜索树的最小绝对差 文档#xff1a; 代码随想录——二叉搜索树的最小绝对差 编程语言#xff1a; C 解题状态#xff1a; 成功解决#xff01; 思路
注意题目中的二叉搜索树#xff0c;这个条件暗示每个节点的左子节点肯定小于该节点 530. 二叉搜索树的最小绝对差 文档 代码随想录——二叉搜索树的最小绝对差 编程语言 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) {}* };*/
class Solution {
private:vectorint nums;void traversal(TreeNode* root) {if (!root) return;traversal(root - left);nums.push_back(root - val);traversal(root - right);}
public:int getMinimumDifference(TreeNode* root) {nums.clear();traversal(root);int min INT_MAX;for (int i 1; i nums.size(); i) {min nums[i] - nums[i - 1] min ? nums[i] - nums[i - 1] : min;}return min;}
};