本文主要是介绍49 -算法 -LeetCode 107 107. 二叉树的层序遍历 II 栈队列vector,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// 最好别 直接 !left 或者 !right 来判断是否为空 判断的是地址 很尴尬
// 直接 left != null rigth != null
//queue front pop push empty size 是否为空 是true
//stack top pop push empty size pop pop不返回元素
//vector clear size [] vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始 push_backclass Solution {
public:vector<vector<int>> levelOrderBottom(TreeNode* root) {vector<vector<int>> res;if(root == nullptr) return res;queue<TreeNode*> temQ1;stack<vector<int>> temS;temQ1.push(root);TreeNode* temp ;vector<int> temV;queue<TreeNode*> temQ2;while(!temQ1.empty()) //更新队列 一层一层的入 {while(!temQ1.empty()){temp = temQ1.front();temV.push_back(temp->val);if(temp->left != nullptr) temQ2.push(temp->left);if(temp->right != nullptr) temQ2.push(temp->right);temQ1.pop();}temS.push(temV);temV.clear();//temQ1 = temQ2;while(!temQ2.empty()){temQ1.push(temQ2.front());temQ2.pop();}}//将stack 的 给 reswhile(!temS.empty()){res.push_back(temS.top());temS.pop();}return res;}
};
这篇关于49 -算法 -LeetCode 107 107. 二叉树的层序遍历 II 栈队列vector的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!