面试的时候问到了二叉树的宽度,平时做过二叉树的深度,这个其实一样,代码如下,利用层序遍历,找到每一层节点数最多的就是数的宽度
int treewidth(TreeNode *root)
{
if(root==NULL)
{
return 0;
}
int wid=0;
int maxwid=0;
queue<TreeNode*>q;
q.push(root);
while(!q.empty())
{
wid=q.size();
maxwid=max(maxwid,wid);
for(int i=0;i<wid;i++)
{
TreeNode* p=q.front();
q.pop();
if(p->left)
{
q.push(p->left);
}
if(p->right)
{
q.push(p->right);
}
}
}
return maxwid;
}