package main

import . "nc_tools"

/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param root TreeNode类
 * @return bool布尔型
 */
func isCompleteTree( root *TreeNode ) bool {
    if root==nil{return true}
    stack:=[]*TreeNode{}
    stack=append(stack, root)
    isEmpty:=false
    for len(stack)>0{
        size:=len(stack)
        for i:=0;i<size;i++{
            node:=stack[i]
            if node==nil{
                isEmpty=true
                continue
            }else {
                if isEmpty {
                    return false
                }else {
                    stack=append(stack, node.Left,node.Right)
                }
            }  
        }
        stack=stack[size:]
    }
    return true
}