题目:

class Solution {
public:
    void traversal(TreeNode* cur, vector<vector<int>>& result, int depth){         //1.result和depth作为每一层的传入参数 2.&很关键,不能漏 3.depth:层序号  
        if(!cur) return;                                                     //空节点为递归终止条件
        if(result.size()==depth) result.push_back(vector<int>());            //每到新的一层,要插入新的空向量来存储该层元素
        result[depth].push_back(cur->val);                                   //每层元素插入对应层的向量组
        traversal(cur->left, result, depth+1);                               //向下递归,传入result,同时depth要加一
        traversal(cur->right, result, depth+1);
    }
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> result;
        int depth=0;                                
        traversal(root, result, depth);
        return result;
    }
};
posted on 2023-08-04 18:40  孜孜不倦fly  阅读(12)  评论(0)    收藏  举报