[leetcode刷题系列]Binary Tree Zigzag Level Order Traversal

来源:互联网 发布:黄金时时彩缩水软件 编辑:程序博客网 时间:2024/04/30 12:59

和前面的某道题类似- -


/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {    vector<vector<int>> ret;    void dfs(TreeNode * root, int dep){        if(ret.size() < dep)            ret.resize(dep);        ret[dep - 1].push_back(root->val);        if(root->left != 0)            dfs(root->left, dep + 1);        if(root->right != 0)            dfs(root->right, dep + 1);    }public:    vector<vector<int> > zigzagLevelOrder(TreeNode *root) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        ret.clear();        if(root == 0)            return ret;        dfs(root, 1);        for(int i = 1; i < ret.size(); i += 2)            reverse(ret[i].begin(), ret[i].end());        return ret;    }};


原创粉丝点击