二叉树层次遍历(每次获得该层宽度)
求二叉树的层序遍历
http://www.nowcoder.com/questionTerminal/04a5560e43e24e9db4595865dc9c63a3
class Solution {
public:
vector<vector<int> > levelOrder(TreeNode* root) {
vector<vector<int>> ans;
if(!root)return ans;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
vector<int> vt;
int size = q.size();// 该层节点个数
while(size--){ //该层所有节点的所有孩子入队。
TreeNode *tmp= q.front();
vt.push_back(tmp->val); // 该层节点存放在vt中
q.pop();
if(tmp->left) {q.push(tmp->left);} // 孩子节点入队
if(tmp->right){q.push(tmp->right);}
}
ans.push_back(vt); // 该层节点存放在ans中 继续循环下层节点。
}
return ans;
}
};
查看11道真题和解析

