A daily practice,
Given a binary tree, return the level order traversal of its nodes ' values. (ie, from left-to-right, level by level).
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]]
The code is as follows:
Class solution {public: int level (Treenode *node) { if (node == null) return 0; if (node->left == null && Node->right == null) return 1; return max (Level (Node->left), Level (node->right)) + 1; } void levelpush (treenode *node, int height, vector<int> & Vec, int cur_height) { if (height == Cur_height) vec.push_back (node->val); if (node- >left != null) levelpush (node->left, height, vec, cur_height + 1 ); &NBSP;&NBSP;&NBSP;&NBSP;&Nbsp; if (node->right != null) levelpush (Node->right, height, &NBSP;VEC,&NBSP;CUR_HEIGHT&NBSP;+&NBSP;1); } vector<vector <int> > levelorder (treenode *root) { int height = level (root); vector<vector <int> > vvec; for (int i = 1;i <= height;i++) { vector<int> vec; levelpush (root, i, vec, 1); vvec.push_back (VEC); } return vvec; }};
"Leetcode" Binary Tree level Order traversal