用 Python 编写程序检查二叉树是否完整
pythonserver side programmingprogramming更新于 2026/1/10 13:32:17
假设我们有一棵二叉树;我们必须检查这是否是一棵完整二叉树。我们知道,在完全二叉树中,除了最后一个节点外,其他层都充满了节点,最后一层的所有节点都尽可能地靠左。
因此,如果输入如下

则输出将为 True
要解决这个问题,我们将遵循以下步骤−
q := 双端队列
在 q 末尾插入根
flag := False
当 q 不为空时,执行
从 q 左侧删除后,temp := 元素
如果 temp 为空,则
flag := True
否则,当设置了 flag 且 temp 不为空时,则
返回 False
否则,
在 q 末尾插入 temp 左侧
在 q 末尾插入 temp 右侧
返回 True
让我们看看下面的实现以便更好地理解 −
示例
from collections import deque class TreeNode: def __init__(self, data, left = None, right = None): self.data = data self.left = left self.right = right class Solution: def solve(self, root): q = deque() q.append(root) flag = False while q: temp = q.popleft() if not temp: flag = True elif flag and temp: return False else: q.append(temp.left) q.append(temp.right) return True ob = Solution() root = TreeNode(9) root.left = TreeNode(7) root.right = TreeNode(10) root.left.left = TreeNode(6) root.left.right = TreeNode(8) print(ob.solve(root))
输入
root = TreeNode(9) root.left = TreeNode(7) root.right = TreeNode(10) root.left.left = TreeNode(6) root.left.right = TreeNode(8)
输出
True
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

