判断一棵树是否为完全二叉树python
时间: 2023-06-08 17:06:37 浏览: 123
可以使用广度优先搜索(BFS)对树进行遍历,从根节点开始逐层遍历每个节点并判断其是否满足完全二叉树的定义。如果当前节点不是叶子节点,但是它的左右子节点不同时存在,则该树不是完全二叉树。如果当前节点是叶子节点,但是它的层数比其他叶子节点的层数要小,则该树不是完全二叉树。如果树的所有节点都满足上述条件,则该树为完全二叉树。
以下是Python代码示例:
```
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def isCompleteTree(root: TreeNode) -> bool:
if not root:
return True
queue = [root]
leaf_found = False
while queue:
node = queue.pop(0)
if not node:
leaf_found = True
elif leaf_found:
return False
else:
queue.append(node.left)
queue.append(node.right)
return True
```
请注意,此代码仅适用于二叉树,对于多叉树需要进行相应的修改。
阅读全文