# 在每个树行中找最大值

  1. 在每个树行中找最大值

来源:力扣(LeetCode) 链接 (opens new window):https://leetcode.cn/problems/find-largest-value-in-each-tree-row/

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

github (opens new window)

# 问题

给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值

输入: root = [1,3,2,5,3,null,9]
输出: [1,3,9]

# 思路

广度优先遍历(层序遍历)

var largestValues = function (root) {
  if (!root || root.length == 0) {
    return [];
  }

  let arr = [];
  arr.push(root);
  let result = [];

  while (arr.length !== 0) {
    const array = arr.splice(0);
    let temp = -Infinity;
    for (let i = 0; i < array.length; i++) {
      const element = array[i];

      if (element && element.left) {
        arr.push(element.left);
      }

      if (element && element.right) {
        arr.push(element.right);
      }

      if (element.val) {
        temp = Math.max(element.val, temp);
      } else {
        temp = Math.max(0, temp);
      }
    }

    result.push(temp);
  }

  return result;
};

陕ICP备20004732号-3