無感重新整理token
阿新 • • 發佈:2022-05-24
107. 二叉樹的層序遍歷 II
給你二叉樹的根節點 root
,返回其節點值 自底向上的層序遍歷 。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
示例 1:
輸入:root = [3,9,20,null,null,15,7]
輸出:[[15,7],[9,20],[3]]
示例 2:
輸入:root = [1]
輸出:[[1]]
示例 3:
輸入:root = []
輸出:[]
提示:
- 樹中節點數目在範圍
[0, 2000]
內 -1000 <= Node.val <= 1000
思路:
BFS,和從上到下一樣,只需要最後吧陣列翻轉即可
class Solution { public: vector<vector<int>> levelOrderBottom(TreeNode* root) { vector<vector<int>>ans; if(root==nullptr)return ans; //BFS queue<TreeNode*>q; q.push(root); while(!q.empty()){ int sz=q.size(); vector<int>res; for(int i=0;i<sz;i++){ TreeNode* cur=q.front(); q.pop(); res.push_back(cur->val); if(cur->left!=nullptr)q.push(cur->left); if(cur->right!=nullptr)q.push(cur->right); } ans.push_back(res); } reverse(ans.begin(),ans.end());//翻轉 return ans; } };