广度优先搜索(辅助队列)思路:
以此类推…
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector <vector <int>> ret;//二维数组
if (!root) {
return ret;
}
queue <TreeNode*> q;//存二叉树的队列 //辅助队列
q.push(root);//根结点入队列
while (!q.empty()) {
int currentLevelSize = q.size();//二叉树尺寸 返回 queue 中元素的个数。
ret.push_back(vector <int> ());//vector <int> ()空的一维数组
for (int i = 1; i <= currentLevelSize; ++i) {
auto node = q.front(); q.pop();
ret.back().push_back(node->val);//第i层的数值获取
if (node->left) q.push(node->left);//若左结点存在 则左结点入队列 第i+1层数值入队列
if (node->right) q.push(node->right);
}
}
return ret;
}
};