我知道树中的节点总数。用这个如何找到树的高度?
答案 0 :(得分:0)
如果你有一个平衡的树,那么高度(等级数)是上限(lg(n + 1)),其中上限总是向上舍入到下一个最高整数,而lg是以2为底的对数。如果你有某些类型的自平衡树(它们并不总是完全平衡,但高度平衡),那么也可以给出树高的信息范围。如果您只假设一个任意的二叉树(例如,每个内部节点有两个子节点),则高度可能与(n-1)/ 2一样多,例如,如果您有一个看起来像梳子的树。
答案 1 :(得分:0)
Create a queue.
Push root into the queue.
height = 0
Loop
nodeCount = size of queue
// If number of nodes at this level is 0, return height
if nodeCount is 0
return Height;
else
increase Height
// Remove nodes of this level and add nodes of
// next level
while (nodeCount > 0)
pop node from front
push its children to queue
decrease nodeCount
// At this point, queue has nodes of next level
有关详细信息:Click this link