以下函数 check() 用于判断一棵二叉树是否为( )。 from collections import deque class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def check(root): if not root: return True q = deque() q.append(root) has_null = False while q: cur = q.popleft() if not cur: has_null = True else: if has_null: return False q.append(cur.left) q.append(cur.right)
A:满二叉树
B:完全二叉树
C:二叉搜索树
D:平衡二叉树
正确答案:B
答案解析
函数使用队列对二叉树进行层序遍历。从根节点开始,逐层将左右子节点入队。当遇到空节点时,标记 has_null 为 true。若在空节点之后又出现非空节点,则返回 false。遍历过程中,一旦出现非空节点且 has_null 已被标记,说明该节点之前存在空节点,破坏了某种连续性条件。整个过程基于节点的空与非空状态在层序序列中的分布模式进行判断,不涉及节点值的大小关系或高度差计算。
试卷来源:202606 CCF-GESP编程能力等级认证Python六级真题