Binary Tree Level Order Traversal (Easy)
Description
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
| For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 return its level order traversal as: [ [3], [9,20], [15,7] ]
|
Analysis
dfs遍历一下,标记层数即可
My Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
* Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution {
vector<vector<int> >ans; void dfs(TreeNode *root,int depth){ if(root==NULL) return; while (ans.size() <= depth) ans.push_back(vector<int>()); ans[depth].push_back(root->val); dfs(root->left,depth+1); dfs(root->right,depth+1); } public: vector<vector<int> > levelOrder(TreeNode *root) { dfs(root,0); return ans; } };
|