LeetCode: Binary Tree Level Order Traversal

来源:互联网 发布:淘宝模块信息怎么写 编辑:程序博客网 时间:2024/05/22 19:23

思路:使用两个队列,一个队列存储当前一层的所有节点,另一个队列存储下一层的节点,结合层次遍历树结构。

code:

class Solution {public:    vector<vector<int> > levelOrder(TreeNode *root) {        vector<vector<int> > ret;        if(root!=NULL){            TreeNode * temp = root;            queue<TreeNode *> firstQ,nextQ;            firstQ.push(temp);            while(!firstQ.empty()){                vector<int> layerRet;                while(!firstQ.empty()){                    TreeNode *t = firstQ.front();                    if(t->left != NULL)                        nextQ.push(t->left);                    if(t->right != NULL)                        nextQ.push(t->right);                                            layerRet.push_back(t->val);                    firstQ.pop();                }                firstQ = nextQ;                while(!nextQ.empty())                      nextQ.pop();                ret.push_back(layerRet);            }        }        return ret;    }};


0 0