题解 | #判断是不是完全二叉树#
判断是不是完全二叉树
https://www.nowcoder.com/practice/8daa4dff9e36409abba2adbe413d6fae
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @return bool布尔型 # 老写层次遍历一下子想笨蛋了 class Solution: def isCompleteTree(self , root: TreeNode) -> bool: # write code here from collections import deque DQ = deque([root]) flag = -1 while DQ: # 思路就是正常的层序遍历,不需要判断左右子空不空,就往里塞就完事儿了 cur = DQ.popleft() if not cur: # 如果发现队列里有一个空的,标记我遇见了个空的 flag = 1 else: if flag == 1: # 如果我再往后遍历的时候发现这个标记被激活过了,那就不是完全树 return False DQ.append(cur.left) # 不用判断空不空,直接入队 DQ.append(cur.right) return True