当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 142842提问 提问时间:2023-10-06 23:18:17阅读次数: 42

最佳答案 问答题库428位专家为你答疑解惑

  1. 从1开始当下标,最后节点下标==节点总数?true:false;
/*** 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,层序遍历,出现空节点后再出现非空节点就不是,其他都是。
/*** 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;}
}
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"L958. 二叉树的完全性检验 java":http://eshow365.cn/6-16511-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!