Last updated 3 years ago
Given the root of a binary tree, return the bottom-up level order traversal of its nodes' values. (i.e., from left to right, level by level from leaf to root).
root
Example 1:
Input: root = [3,9,20,null,null,15,7] Output: [[15,7],[9,20],[3]]
Example 2:
Input: root = [1] Output: [[1]]
Example 3:
Input: root = [] Output: []
class Solution { public: vector<vector<int>> levelOrderBottom(TreeNode *root) { queue<TreeNode *> q; stack<vector<int>> st; vector<vector<int>> res; if(!root){ return res; } q.push(root); while (!q.empty()) { int s = q.size(); vector<int> v; while (s--) { TreeNode *t = q.front(); v.push_back(t->val); q.pop(); if (t->left) { q.push(t->left); } if (t->right) { q.push(t->right); } } st.push(v); } while (!st.empty()) { res.push_back(st.top()); st.pop(); } return res; } };