leetcode-107. Binary Tree Level Order Traversal II-BFS

来源:互联网 发布:豆豆软件站 编辑:程序博客网 时间:2024/06/14 08:37

//107. Binary Tree Level Order Traversal II
//过程:第一次出错:queue没有top函数
// 第二次:stack没有begin,end、clear函数
//总结:基本STL掌握的还不够。
C++代码:

#include <cstdio> #include <cstring> #include<algorithm> #include<math.h> #include<set> #include<queue> #include<vector> #include<stdlib.h> #include<iostream> #include<sstream> #include<utility> #define MAXN 100005 #include<stack> #define INF 0x7fffffff #include<fstream> #include<time.h> //#define lxc using namespace std;/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<vector<int>> levelOrderBottom(TreeNode* root) {        vector<vector<int>> ret;        if (root == NULL)            return ret;        queue<TreeNode*> q;        q.push(root);        stack<vector<int>> v;        while (!q.empty()) {            vector<int> temp ;            int len = q.size();            for (int i=0 ; i<len; i++) {                TreeNode *node = q.front();                q.pop();                temp.push_back(node->val);                if (node->left)                    q.push(node->left);                if (node->right)                    q.push(node->right);            }            v.push(temp);        }        while (!v.empty()) {            vector<int> temp = v.top();            v.pop();            ret.push_back(temp);        }        return ret;    }};
0 0