剑指 Offer 32 - III. 从上到下打印二叉树 III(中等)

发布时间 2023-08-07 21:38:45作者: 孜孜不倦fly

题目:

class Solution {
public:
    void traversal(TreeNode* cur, vector<vector<int>>& result, int depth){
        if(cur==nullptr) return;
        if(result.size()==depth) result.push_back(vector<int>());
        result[depth].push_back(cur->val);
        traversal(cur->left, result, depth+1);
        traversal(cur->right, result, depth+1);
    }
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> result;
        int depth=0;
        traversal(root, result, depth);
        for(int i=0;i<result.size();i++){                                 //取巧的方法,即将按照正常层序遍历得到的结果按层进行重排序
            if(i%2==1) reverse(result[i].begin(), result[i].end());
        }
        return result;
    }
};