【完全二叉树】【层序遍历】判断是否是完全二叉树
- 解法1 层序遍历
- **判断是不是完全二叉树思路:**:star:
---------------🎈🎈题目链接🎈🎈-------------------
解法1 层序遍历
判断是不是完全二叉树思路:⭐️
完全二叉树的叶子节点只能出现在最下层和次下层,且最下层的叶子节点集中在树的左部。
因此只需要层序遍历二叉树的节点(这次的层序遍历需要把null也遍历进去),
当遇到一个null后,如果还能再遇到一个值,那么就return false
如果能顺利的遍历结束全部的,那么就return true
public class Solution {public boolean isCompleteTree (TreeNode root) {if (root == null) {return true;}Queue<TreeNode> myqueue = new LinkedList<>();myqueue.add(root);// 定义一个首次出现null的标志位boolean sig = false;while (!myqueue.isEmpty()) {TreeNode temp = myqueue.poll();// 如果遇到了空节点,那么就将标志位置为true 然后什么都不操作if(temp == null){sig = true;}else{ // 如果当前的temp不为null【如果之前已经有一个null了 那就return false,如果没有那就添加元素】if(sig) return false; //后续访问时,如果已经遇到空节点了,说明经过了叶子,就return falsemyqueue.add(temp.left);myqueue.add(temp.right);} }return true;}
}