如果我们有一个二叉搜索树,我们必须找到用户输入高度的节点数? 当用户输入
h = 3
这个高度的节点数是多少?
答案 0 :(得分:0)
如果跟踪每个节点的行,则可以运行BFS并在h行停止。根将具有h = 1,其每个子节点将具有h = 2,依此类推。因此,当您发现具有正确行值的节点时,您可以停止访问它们并仅对其进行计数。
这里是伪代码:
count = 0
ENDROW是用户输入的行num
将根的rownum设置为1(或0,如果取决于索引方式)
将根放在发现的顶点队列上
虽然队列仍然具有以下元素:
弹出第一个顶点(v)
如果v的rownum = ENDROW-1:
计数+ =孩子数
其他:
每个孩子:
将rownum设置为v的rownum + 1
添加到发现的顶点队列