int getwidth(treeNode *root){
if(root == NULL)
return 0;
queue<treeNode*>s;
int width = 1;
int currsize = 1,tmpsize;
s.push(root);
while(!s.empty()){
tmpsize = currsize;
while(tmpsize != 0){ //这里是关键,把上一层的所有节点都出队列,然后把下一层的节点加入队列
treeNode* tp = s.front();
s.pop();
if(tp->left)
s.push(tp->left);
if(tp->right)
s.push(tp->right);
tmpsize--;
}
if(s.size() > width){
width = s.size();
}
}
}
求二叉树的深度和宽度
最新推荐文章于 2018-07-26 05:53:04 发布