跳过正文
  1. leetcode 题解/

199_二叉树的右视图

·74 字·1 分钟

类型:树

    1. 二叉树的右视图 💛

    https://leetcode-cn.com/problems/binary-tree-right-side-view/

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

    示例:

    输入: [1,2,3,null,5,null,4,7]
    输出: [1, 3, 4, 7]
    解释:
    
       1            <---
     /   \
    2     3         <---
     \     \
      5     4       <---
     /
    7               <---

    💡 BFS

    其实就是层序遍历,只不过我们只要最右边的值。

    class Solution:
        def rightSideView(self, root: TreeNode) -> List[int]:
            if not root:
                return []
            ans = []
            queue = [root]
            while queue:
                ans.append(queue[-1].val)
                new_queue = []
                for node in queue:
                    if node.left: new_queue.append(node.left)
                    if node.right: new_queue.append(node.right)
                queue = new_queue
            return ans

    时间复杂度:O(n),空间复杂度:O(n)