首页 > 代码库 > Leetcode:Binary Tree Level Order Traversal

Leetcode:Binary Tree Level Order Traversal

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]]   
分析:用两个vector分别保存本层和下一层的节点。代码如下:
class Solution {public:    vector<vector<int> > levelOrder(TreeNode *root) {        vector<vector<int> > result;        if(root == NULL) return result;                vector<TreeNode *> prev;        prev.push_back(root);                while(!prev.empty()){            vector<TreeNode *> cur;            vector<int> level;                        for(auto i = prev.begin(); i != prev.end(); i++){                level.push_back((*i)->val);                if((*i)->left) cur.push_back((*i)->left);                if((*i)->right) cur.push_back((*i)->right);            }            result.push_back(level);            prev = cur;        }                return result;    }};

 

Leetcode:Binary Tree Level Order Traversal