跟之前的题目套路类似,请记住这个套路
- arr1装载一行节点,然后一个个给处理掉,直到长度为0,输出最后一个值
- 让arr2装载的任务,全部给arr1,arr2再次清空掉,进入下一次清空arr1的循环
var rightSideView = function (root) {
var res = [];
if (root == null) {
return res;
}
var arr1 = [root];
var arr2 = [];
while (arr1.length) {
var node = arr1.shift();
if (node.left) {
arr2.push(node.left);
}
if (node.right) {
arr2.push(node.right);
}
if (!arr1.length) {
res.push(node.val);
arr1 = arr2;
arr2 = [];
}
}
return res;
};