102. Binary Tree Level Order Traversal

来源:互联网 发布:泸州市网络问政平台 编辑:程序博客网 时间:2024/06/05 08:25

PS:这是我真正意义上一次AC的第一道题,以前出现过的虽然程序没问题,但是可能有手误打错出现编译错误,然后轻松修改提交。这次连手抖都没有了:)

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,null,null,15,7],

    3   / \  9  20    /  \   15   7

return its level order traversal as:

[  [3],  [9,20],  [15,7]]

使用了一个队列,代码如下:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<vector<int>> levelOrder(TreeNode* root) {        vector<vector<int>> res;        if(root == NULL)            return res;                queue<TreeNode*> que;        que.push(root);                while(!que.empty()){            vector<int> vec;            int size = que.size();                        for(int i=0; i<size; ++i){                TreeNode* t = que.front();                que.pop();                vec.push_back(t->val);                                if(t->left != NULL)                    que.push(t->left);                if(t->right != NULL)                    que.push(t->right);            }            res.push_back(vec);        }        return res;    }};


0 0