首页后端开发其他后端知识完全二叉树是什么样,怎么判断

完全二叉树是什么样,怎么判断

时间2024-03-28 13:18:03发布访客分类其他后端知识浏览671
导读:在实际案例的操作过程中,我们可能会遇到“完全二叉树是什么样,怎么判断”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。 完全二...
在实际案例的操作过程中,我们可能会遇到“完全二叉树是什么样,怎么判断”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。

完全二叉树特点

完全二叉树是指除了最后一层之外,其他每一层的结点数都是满的。最后一层如果也满了,是一颗满二叉树,也是完全二叉树。最后一层如果不满,缺少的结点也全部的集中在左边,那也是一颗完全二叉树。

判断一棵二叉树是否为完全二叉树

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
HTML怎么给图片添加边框效果 如何编写html文件,基本操作步骤是什么

游客 回复需填写必要信息