分析
bfs将所有值存入数组q,q从小到大排序,找到最小差值。
C++ 代码
class Solution {
public:
int q[100],idx;
int minDiffInBST(TreeNode* root) {
queue<TreeNode*> Q;
Q.push(root);
while(Q.size()) //bfs
{
auto t=Q.front(); Q.pop();
if(t->left) Q.push(t->left);
if(t->right) Q.push(t->right);
q[idx++]=t->val;
}
sort(q,q+idx);
int ans=INT_MAX;
for(int i=0;i<idx-1;i++)
{
q[i]=q[i+1]-q[i];
ans=min(ans,q[i]); //求最小差值
}
return ans;
}
};