1.一棵树每层节点的平均数
class Solution { public List<Double> averageOfLevels(TreeNode root) { Queue<TreeNode> q = new LinkedList<>(); List<Double> result = new ArrayList<>(); if(root==null){ return result; } q.add(root); while(q.size()>0){ int size =q.size(); double sum=0; int ss=q.size(); while(size>0){ TreeNode v = q.poll(); sum+=v.val; if(v.left!=null){ q.add(v.left); } if(v.right!=null){ q.add(v.right); } size--; } sum=sum/ss; result.add(sum); } return result; } }
2.
class Solution { public int findBottomLeftValue(TreeNode root) { //新建一个队列 Queue<TreeNode> q = new LinkedList<>(); int last = 0; q.add(root); //遍历每一层 while(q.size()>0){ int size = q.size(); //遍历这一层 while(size>0){ TreeNode node = q.poll(); last=node.val; if(node.right!=null){ q.add(node.right); } if(node.left!=null){ q.add(node.left); } size--; } } return last; } }