102. Binary Tree Level Order Traversal
Description:
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
Difficulty:Medium
Example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
方法:Recursive
- Time complexity : O ( n ) O\left ( n\right ) O(n)
- Space complexity :
O
(
n
)
O\left ( n \right )
O(n)
思路:
先建一个类变量存放结果,再来一个额外无返回递归函数,接口传入树深参数,如果二维数组数组的大小等于深度说明需要增加数组了。
class Solution {
public:
vector<vector<int>> res;
vector<vector<int>> levelOrder(TreeNode* root) {
helper(root, 0);
return res;
}
void helper(TreeNode* root, int depth){
if(!root) return ;
if(res.size() == depth) res.push_back(vector<int>());
res[depth].push_back(root->val);
helper(root->left, depth+1);
helper(root->right, depth+1);
}
};