📅  最后修改于: 2023-12-03 15:09:26.305000             🧑  作者: Mango
完美二叉树是一种特殊的二叉树,它满足如下条件:
通过这些特殊性质,我们可以实现一种特定级别顺序遍历,即按照特定层级按从左到右的顺序遍历。我们可以通过如下算法来实现:
ans
用来存放结果。level_num
,表示当前层级的节点个数。temp
添加到ans
中,并将temp
清空。def level_order_traversal(root):
if not root:
return []
queue, ans = [root], []
while queue:
temp, level_num = [], len(queue)
for i in range(level_num):
node = queue.pop(0)
temp.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
ans.append(temp)
return ans
通过上述算法,我们可以在$O(n)$时间复杂度内完成完美二叉树的特定级别顺序遍历。