Leetcode Note: Binary Tree Level Order Traversal II
I. Description
Given a binary tree, return the bottom-up level order traversal of its nodes 'values. (ie, from left to right, level by level from leaf to root ).
For example: Given binary tree {, 20, #, #, 15, 7 },
3 / 9 20 / 15 7
Ii. Question Analysis
Because vector is used, you only need to add a reverse (result. begin (), result. end () on the basis of Binary Tree Level Order Traversal. This is the beauty of programming in the impression.
Iii. Sample Code
# Include
# Include
Using namespace std; struct TreeNode {int val; TreeNode * left; TreeNode * right; TreeNode (int x): val (x), left (NULL), right (NULL) {}}; class Solution {public: vector
> LevelOrderBottom (TreeNode * root) {vector
> Result; orderTraversal (root, 1, result); reverse (result. begin (), result. end (); // Add return result;} private: void orderTraversal (TreeNode * root, size_t level, vector
> & Result) {if (root = NULL) return; if (level> result. size () result. push_back (vector
(); Result [level-1]. push_back (root-> val); orderTraversal (root-> left, level + 1, result); orderTraversal (root-> right, level + 1, result );}};
Iv. Summary
The solution is the same as Binary Tree Level Order Traversal. There are also many solutions that need to be carefully studied.