我正在学习c语言。使用递归计算二进制树中的叶节点很简单,但我们如何使用队列来实现呢?
答案 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