剑指 Offer II 046. 二叉树的右侧视图

102 阅读1分钟

剑指 Offer II 046. 二叉树的右侧视图

跟之前的题目套路类似,请记住这个套路

  • 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;
};