日野弥生:勉強しよう
LeetCode 199 - 二叉树的右视图
发表于2025年04月15日
本题主要是反常识,添加进队列里时需要先添加右子树再添加左子树即可。
class Solution:
def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
result = []
if not root:
return result
queue = deque()
queue.append([root, 0])
currDepth = -1
while queue:
item = queue.popleft()
if item[1] > currDepth:
# 由于只记录第一个数据,所以要有变量记录二叉树当前深度,深度第一次改变时即最右节点
result.append(item[0].val)
currDepth += 1
if item[0].right:
queue.append([item[0].right, item[1] + 1])
if item[0].left:
queue.append([item[0].left, item[1] + 1])
return result