L958. 二叉树的完全性检验 java

  1. 从1开始当下标,最后节点下标==节点总数?true:false;
java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int size=0,maxs=0;
    public boolean isCompleteTree(TreeNode root) {
        if(root==null) return  true;
        func(root,1);
        return size==maxs;
    }
    public void func(TreeNode node , int index){
        if(node==null) return ;
        size++;
        maxs=Math.max(maxs,index);   
        func(node.left,2*index);
        func(node.right,1+2*index);
   


    }
}
  1. 标准BFS,层序遍历,出现空节点后再出现非空节点就不是,其他都是。
java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int size=0,maxs=0;
    public boolean isCompleteTree(TreeNode root) {
        if(root==null) return true;
        int cnt=0;
        Queue<TreeNode> q = new LinkedList<>();
        q.offer(root);
        while(!q.isEmpty()){
            TreeNode cur= q.poll();
            if(cur==null) cnt=1;
            else{
                if(cnt==1) return false;
                q.offer(cur.left);
                q.offer(cur.right);
            }
        }
        return  true;
    }
}
相关推荐
写个博客3 分钟前
暑假算法日记第三天
算法
咖啡啡不加糖12 分钟前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南15 分钟前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
DKPT25 分钟前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
✿ ༺ ོIT技术༻29 分钟前
剑指offer第2版:动态规划+记忆化搜索
算法·动态规划·记忆化搜索
Percep_gan33 分钟前
idea的使用小技巧,个人向
java·ide·intellij-idea
缘来是庄33 分钟前
设计模式之迭代器模式
java·设计模式·迭代器模式
Liudef0640 分钟前
基于HTML与Java的简易在线会议系统实现
java·前端·html
JosieBook1 小时前
【Java编程动手学】Java常用工具类
java·python·mysql
oioihoii1 小时前
C++11标准库算法:深入理解std::none_of
java·c++·算法