最开始我本来想用层序遍历来做的,但遇到了如 {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
若在此之后还有能访问的节点,则不为完全二叉树
妙啊