LeetCode Weekly Contest 40(1) - Average of Levels in Binary Tree
2017-07-09 12:07
363 查看
637. Average of Levels in Binary Tree Difficulty: Easy Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array. Example 1: Input: 3 / \ 9 20 / \ 15 7 Output: [3, 14.5, 11] Explanation: The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11]. Note: The range of node's value is in the range of 32-bit signed integer.
一年没有刷题,是时候重操C++了。本题较为简单,最核心的就是如何按照level遍历整棵树,大概思路就是遍历当前level的节点,记录下他们的孩子节点(即下一个level的节点,并计算均值),这里给出非递归的实现。
class Solution { public: vector<double> averageOfLevels(TreeNode* root) { vector<double> result; if(root == NULL) return result; result.push_back(root->val); // 记录当前level的节点 vector<TreeNode*> curLevelNodes; curLevelNodes.push_back(root); while(curLevelNodes.size()>0) { vector<TreeNode*> nextLevelNodes; double re = 0; // 每一次遍历curLevelNodes都记录下下一个level的节点并计算其均值 for(int i=0;i<curLevelNodes.size();i++) { if(curLevelNodes[i]->left != NULL) { re += curLevelNodes[i]->left->val; nextLevelNodes.push_back(curLevelNodes[i]->left); } if(curLevelNodes[i]->right != NULL) { re += curLevelNodes[i]->right->val; nextLevelNodes.push_back(curLevelNodes[i]->right); } } if(nextLevelNodes.size()>0) result.push_back(re/nextLevelNodes.size()); curLevelNodes = nextLevelNodes; } return result; } };
相关文章推荐
- LeetCode 637 Average of Levels in Binary Tree(二叉树层序遍历)
- leetcode Average of Levels in Binary Tree 二叉树每层的平均值
- 【LeetCode】637 Average of Levels in Binary Tree
- leetcode编程记录13 #637 Average of Levels in Binary Tree
- leetcode[Average of Levels in Binary Tree]//待整理多种解法
- Average of Levels in Binary Tree(leetcode)
- LeetCode average Of Levels in Binary Tree
- [LeetCode] Average of Levels in Binary Tree 二叉树的层平均值
- LeetCode 637 : Average of Levels in Binary Tree(java)
- LeetCode Average of Levels in Binary Tree
- leetCode_637_AverageOfLevelsInBinaryTree
- LeetCode 637: Average of Levels in Binary Tree
- 【LeetCode】637 Average of Levels in Binary Tree
- Average of Levels in Binary Tree
- Average of Levels in Binary Tree问题及解法
- LC-Average of Levels in Binary Tree
- week19-leetcode #637-AverageofLevelsinBinaryTree
- 637. Average of Levels in Binary Tree
- 637. Average of Levels in Binary Tree
- Average of Levels in Binary Tree