Medium Binary Tree Level Order Traversal
32%
Accepted
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
Have you met this question in a real interview?
Yes
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]
]
Challenge
Using only 1 queue to implement it.
btree的level order traversal有个模板。。。就是维护一个Q, 然后用BFS遍历。。。如果熟悉flood fill就知道这个办法了。。。
32%
Accepted
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
Have you met this question in a real interview?
Yes
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] ]
Challenge
Using only 1 queue to implement it.
btree的level order traversal有个模板。。。就是维护一个Q, 然后用BFS遍历。。。如果熟悉flood fill就知道这个办法了。。。
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { /** * @param root: The root of binary tree. * @return: Level order a list of lists of integer */ public: vector<vector<int>> levelOrder(TreeNode *root) { vector<vector<int>> res; if (!root) return res; queue<TreeNode*> q; q.push(root); while(!q.empty()){ int size=q.size(); vector<int> level; for (int i=0; i<size; i++){ TreeNode* cur=q.front(); q.pop(); if (cur->left) q.push(cur->left); if (cur->right) q.push(cur->right); level.push_back(cur->val); } res.push_back(level); } return res; } }; |
No comments:
Post a Comment