leetcode515_在每个树行中找最大值

您需要在二叉树的每一行中找到最大的值。

示例:

输入: 

          1
         / \
        3   2
       / \   \  
      5   3   9 

输出: [1, 3, 9]

 

 

思路:

层序遍历的思想  在同一层找最大的

    public List<Integer> largestValues(TreeNode root) {
	  List<Integer> res = new ArrayList<Integer>();    
	  if (root==null) return res;  
	    Queue<TreeNode> queue = new LinkedList<TreeNode>();
	    queue.add(root);
	       
	    while(queue.size() != 0){
	       int size = queue.size();       //每层的数目量
	       int max = Integer.MIN_VALUE;   //用于保存每层的最大值
	       for(int i = 0; i < size; i++){
	            TreeNode cur = queue.poll();
	            max=Math.max(cur.val, max);
	            if(cur.left!= null)queue.add(cur.left);
	            if(cur.right!=null)queue.add(cur.right);
	          }
	       res.add(max);
	     }	
	 return res;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值