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 [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7], [9,20], [3] ]
Solution: Recursion
Time complexity: O(n)
Space complexity: O(n)
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Author: Huahua class Solution { public: vector<vector<int>> levelOrderBottom(TreeNode *root) { vector<vector<int>> ans; levelOrderBottom(root, 0, ans); reverse(ans.begin(), ans.end()); return ans; } private: void levelOrderBottom(TreeNode *root, int depth, vector<vector<int>>& ans) { if (!root) return; while (ans.size() <= depth) ans.push_back({}); ans[depth].push_back(root->val); levelOrderBottom(root->left, depth + 1, ans); levelOrderBottom(root->right, depth + 1, ans); } }; |
Related Problems
- https://zxi.mytechroad.com/blog/leetcode/leetcode-102-binary-tree-level-order-traversal/
- https://zxi.mytechroad.com/blog/tree/leetcode-429-n-ary-tree-level-order-traversal/
- https://zxi.mytechroad.com/blog/tree/leetcode-872-leaf-similar-trees/
- https://zxi.mytechroad.com/blog/tree/leetcode-987-vertical-order-traversal-of-a-binary-tree/
请尊重作者的劳动成果,转载请注明出处!花花保留对文章/视频的所有权利。
如果您喜欢这篇文章/视频,欢迎您捐赠花花。
If you like my articles / videos, donations are welcome.
Be First to Comment