binary-tree-level-order-traversal

来源:互联网 发布:淘宝客活动好报吗 编辑:程序博客网 时间:2024/06/09 05:25

题目:

Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree{3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7

return its level order traversal as:
[
[3],
[9,20],
[15,7]
]

程序:

层序遍历

class Solution {public:    vector<vector<int> > levelOrder(TreeNode *root) {        vector<vector<int>> res;        if(root==NULL)            return res;        vector<int> v;        queue<TreeNode*> que;        que.push(root);        TreeNode *p;        while(!que.empty())        {            vector<TreeNode*> temp;            while(!que.empty())            {                temp.push_back(que.front());                que.pop();            }            for(int i=0;i<temp.size();i++)            {                v.push_back(temp[i]->val);                if(temp[i]->left)                    que.push(temp[i]->left);                if(temp[i]->right)                    que.push(temp[i]->right);            }            res.push_back(v);            v.clear();        }        return res;    }};
原创粉丝点击