给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
**输入:**root = 1,2,3,null,5,null,4
输出:1,3,4
解释:

示例 2:
**输入:**root = 1,2,3,4,null,null,null,5
输出:1,3,4,5
解释:

示例 3:
**输入:**root = 1,null,3
输出:1,3
示例 4:
**输入:**root = \[\]
输出:\[\]
提示:
- 二叉树的节点个数的范围是
[0,100] -100 <= Node.val <= 100
层序遍历,
1.把每一层都存进队列中
2.队列:先进先出,把前面的都出队
3.把最右边的结果加入数组中
TypeScript
/**
* Definition for a binary tree node.
* class TreeNode {
* val: number
* left: TreeNode | null
* right: TreeNode | null
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
* }
*/
function rightSideView(root: TreeNode | null): number[] {
if(!root) return []
const res:number[] = []
const queue:TreeNode[] = [root]
while(queue.length){
const size = queue.length
for(let i=0;i<size;i++){
const node = queue.shift()
if(i===size-1){
res.push(node.val)
}
if(node.left) queue.push(node.left)
if(node.right) queue.push(node.right)
}
}
return res
};
共勉