日野弥生:勉強しよう

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

フラッシュタブ:LeetCode

题目链接:https://leetcode.cn/problems/binary-tree-right-side-view/

上一篇

LeetCode 392 - 判断子序列

下一篇

LeetCode 1161 - 最大层内元素和