• 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记录层数,每遍历到一个就更新一次。

  • 相关阅读:
    Manjaro mirror in china
    gnome3.X添加开机启动项
    ssh无密钥登陆的简单配置
    ESXi虚拟磁盘共享
    记录一次fat32格式U盘不识别问题
    更换内核后重编virtualbox内核模块
    宏定义字符串连接和符号粘贴
    kernel source reading notepad
    linux kernel tainted
    设计模式-观察者模式(Observer Pattern)
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/12230205.html
Copyright © 2020-2023  润新知