zoukankan      html  css  js  c++  java
  • 数据结构——完全二叉树

    特征

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

    下面介绍一个简单应用,完全二叉树的相关操作以后补充。

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

    import java.util.*;
    /*
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
        public TreeNode(int val) {
            this.val = val;
        }
    }*/
    public class CheckCompletion {
        public boolean chk(TreeNode root) {
            Queue<TreeNode> queue = new LinkedList<TreeNode>();
            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;
        }
    }
  • 相关阅读:
    关于typecho发布文章后的错位
    Python3 和 Python2的区别
    django apache error.log过大
    php 数组转json格式
    php get传递数据
    SVN中文件属性
    linux中django+apache配置
    php添加环境变量
    php和apache安装心得
    php 5.6.14手动安装 php -v 显示没有安装
  • 原文地址:https://www.cnblogs.com/zhengbin/p/6582438.html
Copyright © 2011-2022 走看看