标签:ret link while val lis style pre roo 二叉树
您需要在二叉树的每一行中找到最大的值。
示例:
输入:
1
/ \
3 2
/ \ \
5 3 9
输出: [1, 3, 9]
解法一:宽度优先搜索
List<Integer> res = new ArrayList<>(); public List<Integer> largestValues(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); if (root == null) return res; queue.add(root); while (!queue.isEmpty()) { int size = queue.size(); int max = Integer.MIN_VALUE; while (size > 0) { TreeNode node = queue.poll(); max = Math.max(max, node.val); if (node.left != null) queue.add(node.left); if (node.right != null) queue.add(node.right); size--; } res.add(max); } return res; }
时间复杂度:O(N)
空间复杂度:O(N)
标签:ret link while val lis style pre roo 二叉树
原文地址:https://www.cnblogs.com/xiaoming521/p/14897178.html