其他分享
首页 > 其他分享> > 如何判断一颗二叉树是否为完全二叉树

如何判断一颗二叉树是否为完全二叉树

作者:互联网

核心思想:利用二叉树的层级遍历来判断该二叉树是否为完全二叉树
那么既然要利用层级遍历,则二叉树的每个结点都要遍历到,即每个结点都要入队。之后再添加相关的代码

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