如何判断一颗二叉树是否为完全二叉树
作者:互联网
核心思想:利用二叉树的层级遍历来判断该二叉树是否为完全二叉树
那么既然要利用层级遍历,则二叉树的每个结点都要遍历到,即每个结点都要入队。之后再添加相关的代码
public boolean isComplete() {
if (root == null) return false;
Queue<Node<E>> queue = new LinkedList<>();
queue.offer(root);
boolean leaf = false;
while (!queue.isEmpty()) {
Node<E> node = queue.poll();
if (leaf && !node.isLeaf()) return false;
if (node.left != null) {
queue.offer(node.left);
} else if (node.right != null) { // node.left == null && node.right != null
return false;
}
if (node.right != null) {
queue.offer(node.right);
} else { // node.right == null //来到else表示右边结点为空,则新出队的结点必为叶子结点
leaf = true;
}
}
return true;
}
标签:node,结点,判断,queue,right,二叉树,null,一颗 来源: https://blog.csdn.net/Mrrr_Li/article/details/110477723