其实就是广度优先

JS实现

var rightSideView = function(root) {
    if(!root)return []
    let q = [{n:root,d:0}]
    let rst = []
    while(q.length){
        let {n,d} = q.shift()
        if(!n)continue;
        //遍历
        q.push({n:n.right,d:d+1})
        q.push({n:n.left,d:d+1})
    }
    return rst
};