美文网首页
Binary Tree Level Order Traversa

Binary Tree Level Order Traversa

作者: 一枚煎餅 | 来源:发表于2016-09-23 06:34 被阅读0次
Binary Tree Level Order Traversal II.png

解題思路 :

就是基本的 BFS 思路 利用 queue 來完成 level order traversal 然後把結果一層一層存到 result 中 最後在 reverse 整個 result 可使用內建的 reverse function

C++ code :

<pre><code>
class Solution {

/**
 * @param root : The root of binary tree.
 * @return : buttom-up level order a list of lists of integer
 */

public:

vector<vector<int>> levelOrderBottom(TreeNode *root) {
    // write your code here
    vector<vector<int>> res;
    if(root != nullptr)
    {
        vector<int> v;
        queue<TreeNode*> Q;
        Q.push(root);
        while(!Q.empty())
        {
            int n = Q.size();
            for(int i = 0; i < n; i++)
            {
                TreeNode *tmp = Q.front();
                Q.pop();
                v.emplace_back(tmp->val);
                if(tmp->left) Q.push(tmp->left);
                if(tmp->right) Q.push(tmp->right);   
            }
            res.emplace_back(v);
            v.clear();
        }
        reverse(res.begin(), res.end());        
    }
    return res;
}

};

相关文章

网友评论

      本文标题:Binary Tree Level Order Traversa

      本文链接:https://www.haomeiwen.com/subject/iwhtyttx.html