[leetcode] Binary Tree Level Order Traversal II

来源:互联网 发布:数据库管理系统是一种 编辑:程序博客网 时间:2024/06/07 14:42

Binary Tree Level Order Traversal II

解法:上题基础上反序即可。

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private:    vector<vector<int>> res;public:    vector<vector<int> > levelOrderBottom(TreeNode *root) {        if (root==NULL) {            return res;        }                queue<TreeNode*> curQ,nextQ;        curQ.push(root);                while (!curQ.empty()) {            vector<int> layerRes;                        while (!curQ.empty()) {                TreeNode *tmp=curQ.front();                curQ.pop();                layerRes.push_back(tmp->val);                                if (tmp->left!=NULL) {//使用!tmp->left出错                    nextQ.push(tmp->left);                }                if (tmp->right!=NULL) {                    nextQ.push(tmp->right);                }            }            curQ=nextQ;            while (!nextQ.empty()) {                nextQ.pop();            }            res.push_back(layerRes);        }                reverse(res.begin(), res.end());                return res;    }};


0 0
原创粉丝点击