题解 | #35.判断是不是完全二叉树#

判断是不是完全二叉树

http://www.nowcoder.com/practice/8daa4dff9e36409abba2adbe413d6fae

思路:借助层序遍历

只有x,x,x,#,#,#这样的才是完全二叉树

如果出现x,#,y,#,#,#或者x,#,#,x,#,#,#证明不是完全二叉树

碰到第一个#的时侯令flag=true

如果再次碰到非#结点,且flag=true时候,说明不是完全二叉树

function isCompleteTree( root ) {
  let queue = [];
  queue.push(root);
  let flag = false;
  while(queue.length){//队列不为空时
    const node = queue.shift();//取出第一个
    if(node==null){
      flag = true;
    }else{
      if(flag==true)
        return false;//已经取出了一个null 并且 当前取出的node不为null 队列中还有 对应于# x # # 
      queue.push(node.left);
      queue.push(node.right);
    }
  }
  return true;
}
module.exports = {
    isCompleteTree : isCompleteTree
};
全部评论
非常清晰,棒!
点赞 回复 分享
发布于 2022-09-21 01:53 四川

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
铁锈不腻玩家:下面那个袁先生删了,问他怎么回事,头像都换不明白
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务