zoukankan      html  css  js  c++  java
  • 【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;
    }
  • 相关阅读:
    02-30 线性可分支持向量机
    02-28 scikit-learn库之线朴素贝叶斯
    02-27 朴素贝叶斯
    02-26 决策树(鸢尾花分类)
    047 选项模式
    第二节:师傅延伸的一些方法(复习_总结)
    第一节:登录流程
    第一节:对应拼音编码查询(后续更新)
    前端对象
    Form表单
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14140640.html
Copyright © 2011-2022 走看看