LeetCode-958.二叉树的完全性校验
题目描述
给定一个二叉树的root
,确定它是否是一个完全二叉树。
在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的,并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1
到 2h
节点之间的最后一级h
。
示例1
1 | 输入:root = [1,2,3,4,5,6] |
示例2
1 | 输入:root = [1,2,3,4,5,null,7] |
题解
借助层序遍历的思路,添加标记flag
,表示遍历到某层时是否遇到空节点。
开始层序遍历时,flag
默认为false
,在遍历到某层时遇到空节点,flag
置为true
;如果后面遍历中该层还有其他节点,则不是完全二叉树。
1 | func isCompleteTree(_ root: TreeNode?) -> Bool { |