给定一个二叉树,编写一个函数来检查给定的二叉树是否为完全二叉树。
完全二叉树是一棵二叉树,除了最后一层外,每个层都是完全填充的,并且所有节点尽可能地靠左。来源:wikipedia 我的方法是使用队列进行BFS并计算节点数。运行循环直到队列不为空,但一旦发现以下条件之一成立,就会中断:
1. 节点不存在左子节点 2. 节点存在左子节点但不存在右子节点
现在,我们可以比较从上述方法得到的计数和树中原始节点的计数。如果两者相等,则为完全二叉树,否则不是。
请告诉我这种方法是否正确。谢谢。
这个问题与this相同。但我想在这里验证我的方法。
完全二叉树是一棵二叉树,除了最后一层外,每个层都是完全填充的,并且所有节点尽可能地靠左。来源:wikipedia 我的方法是使用队列进行BFS并计算节点数。运行循环直到队列不为空,但一旦发现以下条件之一成立,就会中断:
1. 节点不存在左子节点 2. 节点存在左子节点但不存在右子节点
现在,我们可以比较从上述方法得到的计数和树中原始节点的计数。如果两者相等,则为完全二叉树,否则不是。
请告诉我这种方法是否正确。谢谢。
这个问题与this相同。但我想在这里验证我的方法。
编辑: 下面@Boris Strandjev验证了该算法。在众多可用的算法中,我觉得这是最容易实现的算法。如果您不同意我的说法,请接受我的真诚道歉。