[力扣题]1.判断一棵树是否是平衡二叉树

1.判断一棵树是否是平衡二叉树

 1.1 题目描述

  给你一棵二叉树的根节点 root ,请你判断这棵树是否是一棵 完全二叉树 。

在一棵 完全二叉树 中,除了最后一层外,所有层都被完全填满,并且最后一层中的所有节点都尽可能靠左。最后一层(第 h 层)中可以包含 1 到 2h 个节点

[力扣题]1.判断一棵树是否是平衡二叉树_第1张图片

[力扣题]1.判断一棵树是否是平衡二叉树_第2张图片

题目思路,创建一个队列,把每棵树的根节点还有它的左子树和右子树依次放进去.在依次弹出. 直到遇到null,再检查队列里面有没有不是null的节点,如果有,那就不是完全二叉树.

[力扣题]1.判断一棵树是否是平衡二叉树_第3张图片

具体代码实现如下:

public boolean isCompleteTree(TreeNode root) {
         if(root == null){
             return true;
         }
         Queue queue = new LinkedList<>();
         queue.offer(root);
         while (!queue.isEmpty()){
             TreeNode cur = queue.poll();
             if(cur != null){
                 queue.offer(cur.left);
                 queue.offer(cur.right);
             }else {
                 break;
             }
         }
         while (!queue.isEmpty()){
             TreeNode cur = queue.poll();
             if(cur !=null){
                 return false;
             }
         }
         return true;

    }

你可能感兴趣的:(数据结构,leetcode,算法)