Binary Tree Level Order Traversal II

来源:互联网 发布:怎么激光编程 编辑:程序博客网 时间:2024/05/16 01:39

同样借鉴一式的代码,用深度优先遍历,然后将同level的val逆序装进vector里。同样有作弊的感觉。。。我发现当要处理多维数组的时候,c++的vector确实要方便很多。

如下:

class Solution {public:    vector<vector<int> > levelOrderBottom(TreeNode *root) {        vector<vector<int> >result;        int level = 1;        traverseTree(root, level, result);        reverse(result.begin(), result.end());        return result;    }    void traverseTree(TreeNode *node, int level, vector<vector<int> >&result) {        if (node == NULL)            return;        if (level > result.size()) {            result.push_back(vector<int>());        }        result[level - 1].push_back(node->val);        level++;        traverseTree(node->left, level, result);        traverseTree(node->right, level, result);    }};


0 0
原创粉丝点击