【技術教程】在內網部署視訊平臺雲服務,並實現公網訪問的操作步驟
阿新 • • 發佈:2022-03-23
二叉樹的層序遍歷(bfs)
✅做題思路or感想:
- 利用佇列來實現層序遍歷
- 當明確每一層直接的元素不用區別對待時,其實程式碼中的size可以不寫,但在這裡要根據每一層來進行分組,所以要寫size
- 當佇列為空時,結束bfs
class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>>result; if (root == nullptr)return result; //防止奇怪測試用例 queue<TreeNode*>que; que.push(root); //先放最開始的根節點 while (!que.empty()) { int size = que.size(); //這裡要根據每一層來分組,所以要用個size來區別每一層的節點 vector<int>temp; for (; size; size--) { //處理節點 auto t = que.front(); temp.push_back(t->val); //將符合條件的節點加入佇列中 if (t->left)que.push(t->left); if (t->right)que.push(t->right); que.pop(); //當一個節點利用完後,就可以彈出了 } result.push_back(temp); } return result; } };