首页 > 试题广场 >

手写代码:求二叉树每层最大值

[问答题]
 public List<IntegerlargestValues(TreeNode root) {
       List<Integerres =  new ArrayList<>();
       LinkedList<TreeNodequeue = new LinkedList<>();
       if(root==null){
           return res;
       }
       queue.add(root);
       while(!queue.isEmpty()){
           int n = queue.size();
           int max = Integer.MIN_VALUE;
           for(int i = 0; i<n;i++){
               TreeNode node = queue.remove();
               if(node.val>max) max = node.val;
               if(node.left!=null){
                   queue.add(node.left);
               }
               if(node.right!=null){
                   queue.add(node.right);
               }
           }
           res.add(max);
       }
       return res;

    }
发表于 2021-10-14 23:04:04 回复(0)