leetCode_637_AverageOfLevelsInBinaryTree

来源:互联网 发布:php ipv6适配 编辑:程序博客网 时间:2024/06/09 23:40

题目描述

Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */import java.util.Queue;class Solution {    public List<Double> averageOfLevels(TreeNode root) {        if (root == null)            return null;        List<Double> list = new ArrayList<>();        Queue<TreeNode> queue = new LinkedList<>();        list.add((double)root.val);        queue.add(root);        TreeNode last = root;        TreeNode nextLast = root;        double averageSum  = 0;        int count = 0;        while (queue.size() != 0) {            TreeNode temp = queue.poll();            if (temp.left != null) {                nextLast = temp.left;                queue.add(temp.left);                averageSum += temp.left.val;                count ++;            }            if (temp.right != null) {                nextLast = temp.right;                queue.add(temp.right);                averageSum += temp.right.val;                count ++;            }            if (temp == last) {                if (nextLast != last) {                                         list.add(averageSum / count);                     averageSum = 0;                     count = 0;                     last = nextLast;                }               }          }        return list;    }}
原创粉丝点击