1. 程式人生 > 其它 >無感重新整理token

無感重新整理token

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;
    }
};