原题地址(简单)
开始还铁憨憨的以为,把树中相邻的结点的差值都算一遍就完事了。
太憨了。
中序遍历才是正道。
class Solution {
public:
vector<int> v;
int getMinimumDifference(TreeNode* root) {
// 中序遍历
mid(root);
int ans = INT_MAX;
for(int i = 1; i < v.size(); i++)
ans = min(ans, abs(v[i] - v[i-1]));
return ans;
}
void mid(TreeNode* root) {
if(!root) return;
mid(root->left);
v.push_back(root->val);
mid(root->right);
}
};