题库首页 › GESP等级认证(Python) › 题目 25947

给定一棵二叉树,采用广度优先搜索 BFS 返回其右视图,其中右视图中的每个节点都是该层最右侧的节点。横线处应填写( )。 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 rightSideView(root): result = [] if not root: return result q = deque([root]) while q: sz = len(q) for i in range(sz): node = q.popleft() -----------------# 填空位置 if node.left: q.append(node.left) if node.right: q.append(node.right)

A:if i == 0: result.append(node.val)
B:if i == sz - 1: result.append(node.val)
C:result.append(q[0].val)
D:if node.right: result.append(node.right.val)

正确答案:B

答案解析

使用广度优先搜索遍历二叉树,每层节点按从左到右顺序入队。每一层处理开始时记录当前队列长度,表示该层的节点数量。在循环处理该层每个节点时,逐个出队。当处理到最后一个节点(即最右侧节点)时,将其值加入结果列表。左子节点先入队,右子节点后入队,保证同层节点顺序为从左至右。

试卷来源:202606 CCF-GESP编程能力等级认证Python六级真题

本卷相关题目

在线做题 同科目题库