最开始我本来想用层序遍历来做的,但遇到了如 {1,2,3,#,#,4,5} 这样的问题
让我百思不得其解

直到我看了官解,我才发现原来队列里也可以放 None
代码如下:

import queue
class Solution:
    def isCompleteTree(self , root: TreeNode) -> bool:
        q = queue.Queue()
        q.put(root)
        
        flag = False
        while not q.empty():
            cur = q.get()
            
            if not cur:
                flag = True
            else:
                if flag:
                    return False
                q.put(cur.left)
                q.put(cur.right)
                
        return True

当 None 出现在队列里就代表有节点为空,令 flag 为 True
若在此之后还有能访问的节点,则不为完全二叉树

妙啊