【leetcode】102. 二叉树的层序遍历

 

复制代码
class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector <vector <int>> ret;
        if (!root) {
            return ret;
        }

        queue <TreeNode*> q;
        q.push(root);
        while (!q.empty()) {
            int currentLevelSize = q.size();
            ret.push_back(vector <int> ());
            for (int i = 1; i <= currentLevelSize; ++i) {
                auto node = q.front(); q.pop();
                ret.back().push_back(node->val);
                if (node->left) q.push(node->left);
                if (node->right) q.push(node->right);
            }
        }
        
        return ret;
    }
};
复制代码

 

复制代码
void recurseion(struct TreeNode* root, int* returnSize, int* col, int cnt,int** arr){
    if (!root)
        return;
    if (cnt+1 > *returnSize)
        *returnSize = cnt+1;
    if (col[cnt] == 0)
        arr[cnt] = (int*)calloc(1000, sizeof(int*));
    arr[cnt][col[cnt]++] = root->val;
    recurseion(root->left, returnSize, col, cnt+1, arr);
    recurseion(root->right, returnSize, col, cnt+1, arr);
}
int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){
    int** arr = (int**)calloc(1000, sizeof(int*));
    *returnSize = 0;
    *returnColumnSizes = (int*)calloc(1000, sizeof(int));
    recurseion(root, returnSize, *returnColumnSizes, 0, arr);
    return arr;
}
复制代码

 

posted @   温暖了寂寞  阅读(97)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· 赶AI大潮:在VSCode中使用DeepSeek及近百种模型的极简方法
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
点击右上角即可分享
微信分享提示