Binary Tree Level Order Traversal II

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;
}

};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容