Problem: 102. 二叉树的层序遍历
解析
迭代层次遍历法
每次将一层的节点压入栈中,然后再将该层的节点弹出,同时将下一层的节点压入栈中,直到栈为空。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class Solution { public: vector<vector<int>> levelOrder(TreeNode *root) { if(root==nullptr){ return vector<vector<int>> {}; } vector<vector<int>> res; queue<TreeNode *> qu; qu.push(root); while (!qu.empty()) { int levelSize = qu.size(); vector<int> resPart; for (int i = 0; i < levelSize; ++i) { TreeNode *node = qu.front(); qu.pop(); resPart.emplace_back(node->val); if(node->left!=nullptr){ qu.push(node->left); } if(node->right!=nullptr){ qu.push(node->right); } } res.emplace_back(resPart); } return res; } };
|