如何使用队列计算二叉树中的叶节点数?

时间:2017-03-30 09:06:36

标签: c

我正在学习c语言。使用递归计算二进制树中的叶节点很简单,但我们如何使用队列来实现呢?

1 个答案:

答案 0 :(得分:1)

使用队列对树进行广度优先遍历,并检查特定节点是否同时具有子NULL

伪代码:

queue = [root]
count = 0
while !queue.empty():
    current_node = queue.dequeue()
    if (current_node.left == NULL) and (current_node.right == NULL):
        count += 1
        continue
    if (current_node.left != NULL):
        queue.enqueue(current_node.left)
    if (current_node.right != NULL):
        queue.enqueue(current_node.right)

print count