zoukankan      html  css  js  c++  java
  • 515. Find Largest Value in Each Tree Row

    You need to find the largest value in each row of a binary tree.

    Example:

    Input: 
    
              1
             / 
            3   2
           /      
          5   3   9 
    
    Output: [1, 3, 9]

    class Solution {
        public List<Integer> largestValues(TreeNode root) {
            List<Integer> res = new ArrayList();
            List<List<Integer>> help = levelOrder(root);
            for(List<Integer> list : help) res.add(Collections.max(list));
            return res;
        }
        public List<List<Integer>> levelOrder(TreeNode root) {
            List<List<Integer>> res = new ArrayList<>();
            Helper(0, root, res);
            return res;
        }
        public void Helper(int height, TreeNode p, List<List<Integer>> res){
            if(p == null) return;
            if(height == res.size()){
                res.add(new ArrayList());
            }
            res.get(height).add(p.val);
            Helper(height + 1, p.left, res);
            Helper(height + 1, p.right, res);
        }
    }

    先level order,再把每层最大的拉出来。

    public class Solution {
        public List<Integer> largestValues(TreeNode root) {
            List<Integer> res = new ArrayList<Integer>();
            helper(root, res, 0);
            return res;
        }
        private void helper(TreeNode root, List<Integer> res, int d){
            if(root == null){
                return;
            }
           //expand list size
            if(d == res.size()){
                res.add(root.val);
            }
            else{
            //or set value
                res.set(d, Math.max(res.get(d), root.val));
            }
            helper(root.left, res, d+1);
            helper(root.right, res, d+1);
        }
    }

    或者直接用d记录层数,每遍历到一个就更新一次。

  • 相关阅读:
    Robot Framework + Selenium library + IEDriver环境搭建
    【转】大话测试数据(一)
    TEST DESIGN TECHNIQUES: AN OVERVIEW
    24 WHEN CAN WE STOP TESTING?
    MySql Trace
    ORGANISING THE TEST CASES
    angular教程
    vue报错一
    sort()
    时间戳
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/12230205.html
Copyright © 2011-2022 走看看