您的位置:首页 > 其它

二叉树层序遍历

2015-10-05 10:40 387 查看
给一棵二叉树
{3,9,20,#,#,15,7}

3
/ \
9  20
/  \
15   7


返回他的分层遍历结果:
[
[3],
[9,20],
[15,7]
]

/**
* Definition of TreeNode:
* class TreeNode {
* public:
*     int val;
*     TreeNode *left, *right;
*     TreeNode(int val) {
*         this->val = val;
*         this->left = this->right = NULL;
*     }
* }
*/

class Solution {
/**
* @param root: The root of binary tree.
* @return: Level order a list of lists of integer
*/
public:
vector<vector<int>> levelOrder(TreeNode *root) {
// write your code here
vector<vector<int>>res;
if(root==NULL) return res;
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
int size=q.size();
vector<int>oneLevel;
for(int i=0;i<size;i++){
TreeNode *tmp=q.front();q.pop();
oneLevel.push_back(tmp->val);
if(tmp->left) q.push(tmp->left);
if(tmp->right) q.push(tmp->right);
}
res.push_back(oneLevel);

}
return res;
}
};


[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: