107. Binary Tree Level Order Traversal II

来源:互联网 发布:美国人口老龄化数据 编辑:程序博客网 时间:2024/06/08 04:32

这里写图片描述

    vector<vector<int>> levelOrderBottom(TreeNode* root) {        vector<vector<int>> res;        if(!root) return res;        queue<TreeNode*> q;        q.push(root);        while(!q.empty()){            vector<int> oneLevel;            int n=q.size();            for(int i=0;i<n;i++){                TreeNode* node=q.front();q.pop();                   oneLevel.push_back(node->val) ;                   if(node->left) q.push(node->left);                if(node->right) q.push(node->right);            }            res.insert(res.begin(),oneLevel);        }        return res;    }

使用递归的解法

    vector<vector<int>> levelOrderBottom(TreeNode* root) {        vector<vector<int>> res;       levelOrderBottom(root,0,res);               return vector<vector<int>>(res.rbegin(),res.rend());    }    void levelOrderBottom(TreeNode* root,int level,vector<vector<int>> &res) {                if (!root) return;        if(res.size()==level) res.push_back({});        res[level].push_back(root->val);        if(root->left) levelOrderBottom(root->left,level+1,res);        if(root->right) levelOrderBottom(root->right,level+1,res);           }

vector函数
c++中指针和引用的区别

原创粉丝点击