107. 二叉树的层序遍历 II and 102. 二叉树的层序遍历 023(BFS模板题打两道)
生活随笔
收集整理的這篇文章主要介紹了
107. 二叉树的层序遍历 II and 102. 二叉树的层序遍历 023(BFS模板题打两道)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:題目
二:上碼
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:vector<vector<int>> levelOrderBottom(TreeNode* root) {vector<vector<int> > ans;stack<vector<int> >s;queue<TreeNode *> q;if(root != NULL) q.push(root);while(!q.empty()){int size = q.size();vector<int> v;for(int i = 0; i < size; i++){TreeNode* ptr = q.front();q.pop();v.push_back(ptr->val);if(ptr->left != NULL)q.push(ptr->left);if(ptr->right != NULL)q.push(ptr->right); }s.push(v);v.clear(); }while(!s.empty()){ans.push_back(s.top());s.pop();}return ans;} };三
二:上碼
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int> >ans;queue<TreeNode*> q;//這里隊列里裝的類型為指針if(root != NULL){q.push(root);}while(!q.empty()){ int size = q.size();vector<int> v;for(int i = 0; i < size; i++){TreeNode* ptr = q.front();q.pop();//將每一行的值裝進容器當中v.push_back(ptr->val);//將結點的子結點裝進隊列if(ptr->left != NULL)q.push(ptr->left);if(ptr->right != NULL)q.push(ptr->right);}ans.push_back(v);v.clear();}return ans;} };總結
以上是生活随笔為你收集整理的107. 二叉树的层序遍历 II and 102. 二叉树的层序遍历 023(BFS模板题打两道)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10怎么更改电脑默认存储位置win
- 下一篇: 如何让孩子摆脱手机依赖如何摆脱电脑依赖