分析
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;
}
};
这篇博客讲解了一种使用广度优先搜索(BFS)算法在二叉搜索树(BST)中找出节点值之差的最小值的C++实现方法。通过队列操作存储节点值并进行排序,最后计算连续元素之间的差值,找到最小的那个作为答案。
244

被折叠的 条评论
为什么被折叠?



