1、题目描述
( 1 ) (1) (1) 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值,
2、题目链接
题目链接: https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/.
3、解题报告
1、思路分析
1、层次遍历二叉树,找到每一层的最大值,加入链表里面
2、数据结构&算法
队列,二叉树,链表
3、代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public List<Integer> largestValues(TreeNode root) {
if(root == null) return new LinkedList<>();
Queue <TreeNode> sc = new LinkedList();
List<Integer> temp = new LinkedList<>();
sc.offer(root);
while(!sc.isEmpty()){
int n = sc.size();
int max = Integer.MIN_VALUE ;
while(n > 0){
TreeNode t = sc.poll();
if(t.left != null){
sc.offer(t.left);
}
if(t.right != null){
sc.offer(t.right);
}
max = Math.max(max,t.val);
n--;
}
temp.add(max);
}
return temp;
}
}
4、总结
java里面的最小int值,树的层次遍历