資料結構與演算法第二天(二叉樹刷題)
這是本專欄第二篇文章,資料結構與演算法刷題篇
今天做的是LeetCode上二叉樹的一道題,感覺很有意義,所以記錄下來。
劍指 Offer 32 - II. 從上到下列印二叉樹 II
思路:二叉樹的層序遍歷,通過佇列實現。
WA程式碼:
/**
* 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:
queue<TreeNode*> q;
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> ans;
if(root==NULL)
return ans;
q.push(root);
vector<int>temp;
while(!q.empty())
{
if(q.front()->left)
q.push(q.front()->left);
if(q.front()->right)
q.push(q.front()->right);
temp.push_back(q.front()->val);
q.pop();
}
ans.push_back(temp);
return ans;
}
};
AC程式碼:
/**
* 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:
queue<TreeNode*> myQue;
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> ans;
if(root==NULL)
return ans;
myQue.push(root);
while(!myQue.empty()){
vector<int> tmp;
int size = myQue.size();
for(;size--;myQue.pop()){
auto node = myQue.front();
if(node->left) myQue.push(node->left);
if(node->right) myQue.push(node->right);
tmp.push_back(node->val);
}
ans.push_back(tmp);
}
return ans;
}
};
兩個程式碼輸出是不同的,後面有時間來寫區別及感想。
相關文章
- 【資料結構與演算法】二叉樹資料結構演算法二叉樹
- 資料結構與演算法:二叉排序樹資料結構演算法排序
- 資料結構與演算法-表示式二叉樹資料結構演算法二叉樹
- 資料結構與演算法-kd二叉樹(kNN)資料結構演算法二叉樹KNN
- 資料結構與演算法-二叉查詢樹資料結構演算法
- 資料結構與演算法-二叉樹性質資料結構演算法二叉樹
- 資料結構與演算法-二叉樹遍歷資料結構演算法二叉樹
- 演算法與資料結構——AVL樹(平衡二叉搜尋樹)演算法資料結構
- 資料結構與演算法-kd二叉樹(基礎)資料結構演算法二叉樹
- 【演算法與資料結構 02】二叉樹的引入演算法資料結構二叉樹
- 【資料結構與演算法】手撕平衡二叉樹資料結構演算法二叉樹
- 『資料結構與演算法』二叉查詢樹(BST)資料結構演算法
- 資料結構和演算法:二叉樹資料結構演算法二叉樹
- 資料結構(樹):二叉樹資料結構二叉樹
- 資料結構——樹與二叉樹的遍歷資料結構二叉樹
- JS資料結構與演算法 - 劍指offer二叉樹演算法題彙總JS資料結構演算法二叉樹
- 資料結構與演算法-二叉查詢樹平衡(DSW)資料結構演算法
- 資料結構與演算法-二叉查詢樹平衡(AVL)資料結構演算法
- 【資料結構與演算法】手撕二叉查詢樹資料結構演算法
- 資料結構與演算法 二叉樹基本框架與知識點資料結構演算法二叉樹框架
- 資料結構 - 二叉樹資料結構二叉樹
- 資料結構-二叉樹資料結構二叉樹
- 資料結構 其五 樹與二叉樹學習總結資料結構二叉樹
- 結構與演算法(05):二叉樹與多叉樹演算法二叉樹
- 資料結構和演算法-二叉樹,AVL,紅黑樹資料結構演算法二叉樹
- 二叉樹 & 二叉查詢樹 ADT [資料結構與演算法分析 c 語言描述]二叉樹資料結構演算法
- 二叉樹 & 二叉查詢樹 ADT【資料結構與演算法分析 c 語言描述】二叉樹資料結構演算法
- 資料結構與演算法:AVL樹資料結構演算法
- 資料結構和演算法面試題系列—二叉樹基礎資料結構演算法面試題二叉樹
- 資料結構之「二叉樹」資料結構二叉樹
- 資料結構-平衡二叉樹資料結構二叉樹
- 【資料結構】二叉樹的建立與遍歷資料結構二叉樹
- 【資料結構&演算法】12-線索二叉樹資料結構演算法二叉樹
- 【資料結構與演算法】Trie(字首樹)模板和例題資料結構演算法
- 【資料結構與演算法】二叉搜尋樹的簡單封裝資料結構演算法封裝
- 資料結構和演算法面試題系列—二叉樹面試題彙總資料結構演算法面試題二叉樹
- 【資料結構&演算法】11-樹基礎&二叉樹遍歷資料結構演算法二叉樹
- 資料結構 二叉樹遍歷資料結構二叉樹