1.二叉树的层次遍历II
思路一:利用队列的层次遍历+reverse
/** * 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>> res; if(root==nullptr) return res; queue<TreeNode*> s1; vector<int> cur; int num=1; int curNum=0; s1.push(root); while(!s1.empty()) { for(int i=0;i<num;i++) { TreeNode* p=s1.front(); cur.push_back(p->val); s1.pop(); if(p->left) { s1.push(p->left); curNum++; } if(p->right) { s1.push(p->right); curNum++; } } res.push_back(cur); cur.clear(); num=curNum; curNum=0; } reverse(res.begin(),res.end()); return res; } };