题解 | #判断是不是完全二叉树#
判断是不是完全二叉树
https://www.nowcoder.com/practice/8daa4dff9e36409abba2adbe413d6fae
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { //思路,使用队列数据结构,对该树进行层序遍历,并且当树的左或右子树为空时也要把null //放入队列中,当第一遍循环第一次碰见null时返回,开始第二趟检查循环 //如果往后的元素全是null,说明是完全二叉树,如果出现非null元素,说明否。 public boolean isCompleteTree (TreeNode root) { Deque<TreeNode> deque=new LinkedList<>(); deque.offer(root); while(!deque.isEmpty()) { TreeNode tmp=deque.pop(); deque.offer(tmp.left); deque.offer(tmp.right);//null元素也要入队 if(deque.peekFirst()==null) { break; } } while(!deque.isEmpty()) { if(deque.pop()!=null) { return false; } } return true; } }