Leetcode 199:二叉树的右视图(超详细的解法!!!)

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例:

输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:

   1            <---
 /   \
2     3         <---
 \     \
  5     4       <---

解题思路

这个问题其实就是Leetcode 102:二叉树的层次遍历(最详细解决方案!!!)问题的变种,我们只需要层序遍历整棵树,然后将每一层的最后一个值添加到结果中。

class Solution:
    def rightSideView(self, root: TreeNode) -> List[int]:
        if not root:
            return []
        
        q, res = [root], list()
        while q:
            res.append(q[-1].val) # add val
            for _ in range(len(q)):
                node = q.pop(0)
                if node.left:
                    q.append(node.left)
                if node.right:
                    q.append(node.right)

        return res

我将该问题的其他语言版本添加到了我的GitHub Leetcode

如有问题,希望大家指出!!!

你可能感兴趣的:(Problems,leetcode解题指南)