📅  最后修改于: 2023-12-03 14:54:27.743000             🧑  作者: Mango
这道题要求打印出二叉树中包含奇数和偶数节点的所有级别。我们可以采用层序遍历(BFS)的方法来解决这个问题。
具体实现思路如下:
以下为Python实现的代码片段,返回markdown格式:
from collections import deque
def printLevelOrder(root):
# 新建队列,将根节点加入队列中
queue = deque([root])
# 当前层级,奇数节点计数器,偶数节点计数器
level = 0
odd = 0
even = 0
while queue:
# 统计当前层级中奇数节点和偶数节点的数量
size = len(queue)
for _ in range(size):
node = queue.popleft()
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
# 统计当前节点数
if node.val % 2 == 0:
even += 1
else:
odd += 1
# 打印当前层级中包含奇数和偶数节点的数量
if odd > 0:
print(f"Level {level}: {odd} odd node(s)")
if even > 0:
print(f"Level {level}: {even} even node(s)")
# 将队列中剩余的节点加入下一层级的遍历队列中,并增加层级计数器
level += 1
odd, even = 0, 0
这样我们就可以使用以上代码来完成这道题了。