LeetCode637

    技术2022-07-31  68

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public List<Double> averageOfLevels(TreeNode root) { //建立结果数组 List<Double> ans = new ArrayList<>(); //建立队列 Queue<TreeNode> q = new LinkedList<>(); if(root == null){ return ans; } //将根节点放入队列 q.add(root); //当队列非空时 while(!q.isEmpty()){ //建立临时队列用来放孩子节点 Queue<TreeNode> tem = new LinkedList<>(); long sum = 0; int count = 0;//用来统计每层节点个数 while(!q.isEmpty()){ TreeNode cur = q.remove(); sum = sum + cur.val; count++; if(cur.left != null){ tem.add(cur.left); } if(cur.right != null){ tem.add(cur.right); } } q = tem; ans.add(sum*1.0/count); } return ans; } }

     

    Processed: 0.009, SQL: 9