完全二叉树是什么样,怎么判断
导读:在实际案例的操作过程中,我们可能会遇到“完全二叉树是什么样,怎么判断”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。 完全二...
在实际案例的操作过程中,我们可能会遇到“完全二叉树是什么样,怎么判断”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。完全二叉树特点
完全二叉树是指除了最后一层之外,其他每一层的结点数都是满的。最后一层如果也满了,是一颗满二叉树,也是完全二叉树。最后一层如果不满,缺少的结点也全部的集中在左边,那也是一颗完全二叉树。
判断一棵二叉树是否为完全二叉树
import java.util.*;
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public class CheckCompletion {
public boolean checking(TreeNode root) {
QueueTreeNode>
queue = new LinkedListTreeNode>
();
boolean leaf = false;
// 叶子结点
TreeNode left;
TreeNode right;
queue.add(root);
while (!queue.isEmpty()) {
root = queue.poll();
left = root.left;
right = root.right;
if ((leaf&
&
(left!=null||right!=null)) || (left==null&
&
right!=null)) {
// 如果之前层遍历的结点没有右孩子,且当前的结点有左或右孩子,直接返回false
// 如果当前结点有右孩子却没有左孩子,直接返回false
return false;
}
if (left != null) {
queue.offer(root.left);
}
if (right != null) {
queue.offer(root.right);
}
else {
leaf = false;
// 如果当前结点没有右孩子,那么之后层遍历到的结点必须为叶子结点
}
}
return true;
}
}
感谢各位的阅读,以上就是“完全二叉树是什么样,怎么判断”的内容了,通过以上内容的阐述,相信大家对完全二叉树是什么样,怎么判断已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 完全二叉树是什么样,怎么判断
本文地址: https://pptw.com/jishu/654964.html
