您的位置:首页 > 其它

求二叉树的高度(非递归) .----美团二面=----硬伤 当时没有答上来

2013-10-13 20:08 204 查看
#include <queue>

using namespace std;

int calculateTreeHeight(Node *root)

{

if(root == NULL)

return 0;

int visitedNumber = 0;

int enQueNumber = 1; //当前入栈的序号,root为1

int lastLevelNumber = 1;

int height = 0;

queue<Node*> q;

q.push(root);

while(!q.empty())

{

Node *node = q.front();

q.pop();

visitedNumber++;

if(node->left != NULL)

{

q.push(node->left);

enQueNumber++;

}

if(node->right != NULL)

{

q.push(node->right);

enQueNumber++;

}

//访问到当前level上的最后一个节点

if(visitedNumber == lastLevelNumber)

{

height++;

lastLevelNumber = enQueNumber;

}

}

return height;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐