leetcode题目:binary tree level order traversal

Binary Tree Level Order Traversal:

Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
private:
void (TreeNode *root, vector<vector<int>> &coll, int level){

if(level + 1 > coll.size())
coll.push_back(vector<int>(1, root->val));
//把当前节点的val插入到第level层
else
coll[level].push_back(root->val);
//递归的处理左右子树
if(root->left)
helper(root->left, coll, level + 1);
if(root->right)
helper(root->right, coll, level + 1);
}
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> coll;
if(root)
helper(root, coll, 0);
return coll;
}
};