给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
输入: [1,2,3,null,5,null,4]
输出: [1,3,4]
示例 2:
输入: [1,null,3]
输出: [1,3]
示例 3:
输入: []
输出: []
/*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val = (val===undefined ? 0 : val)* this.left = (left===undefined ? null : left)* this.right = (right===undefined ? null : right)* }*//*** @param {TreeNode} root* @return {number[]}*/var rightSideView = function (root) {let res = [], depth = 0;const traverse = (root) => {if (root == null) {return;}depth++;if (res.length < depth) {// 这一层还没有记录值// 说明 root 就是右侧视图的第一个节点res.push(root.val);}// 注意,这里反过来,先遍历右子树再遍历左子树// 这样首先遍历的一定是右侧节点traverse(root.right);traverse(root.left);depth--;}traverse(root)return res};

