二叉树层序遍历C语言版

二叉树层序遍历C语言版二叉树层序遍历C语言版leetcode102/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*//***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearray

大家好,又见面了,我是你们的朋友全栈君。

二叉树层序遍历C语言版

leetcode 102

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
 
int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){
    * returnSize = 0;
    * returnColumnSizes = malloc(sizeof(int) * 2010);
    if(root == NULL){
        return 0;
    }
    int i = 0;
    struct TreeNode* node;
    int front=0, top = 0;
    struct TreeNode** q = malloc(sizeof(struct TreeNode*) * 2010);
    int** ret = malloc(sizeof(int*) * 2010);
    q[top++] = root; //q[0] = root
    // 队列为空 top==front
    while(top - front > 0){

        int q_size = top - front;
        (* returnColumnSizes)[i] = q_size;
        ret[i] = malloc(sizeof(int) * q_size);
        for(int j =0; j < q_size;j++){
            node = q[front++]; //出队
            ret[i][j] = node->val;   
            if(node->left != NULL)  q[top++]= node->left;     // push
            if(node->right != NULL)  q[top++]= node->right;
        }
        i++;
    }
    * returnSize = i;
    return ret;

}

挺有意思的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143573.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 面试中问什么问题最能让面试官记忆犹新?

    面试中问什么问题最能让面试官记忆犹新?

    2022年2月18日
    40
  • NLTK FreqDist

    NLTK FreqDistFreqDisknltkFreqDisk函数能够统计数组当中单词出现的次数。text=[‘hadoop’,’spark’,’hive’,’hadoop’,’hadoop’,’spark’,’lucene’,’hadoop’,’spark’,’hive’,’hadoop’,’hadoop’,’spark’,’pig’,’zookeeper’,’flume’,’…

    2025年6月24日
    1
  • jdbc的增删改查_netbeans数据库增删改查

    jdbc的增删改查_netbeans数据库增删改查JBDC数据的持久化:把数据保存到磁盘上。JDBC是java访问数据库的基石,JDO,Hibernate,Mybatis等都是基于JDBCJDBC是一个独立于特定数据库的管理系统,通用的SQL数据库存取和操作的公共接口配置文件:jdbc.propertiesuser=rootpassword=abc123url=jdbc:mysql://localhost:3306/testdriverClass=com.mysql.jdbc.Driver获取Connectionpublic s

    2022年8月8日
    6
  • MySQL8.0设置简单密码

    MySQL8.0设置简单密码

    2021年6月1日
    181
  • 机房搬迁是什么意思_计算机机房管理规定

    机房搬迁是什么意思_计算机机房管理规定原标题:盘点机房搬迁中最容易出现的五个问题企业要更换办公地址的时候,最头疼的问题就是搬迁机房,机房的搬迁可不是搬家那么简单,是否能顺利搬迁,将成为保障企业业务连续性的关键要素。在企业机房的搬迁中,最容易出现哪些问题?盘点机房搬迁中最容易出现的五个问题(1)领导不明确在规划阶段最常见的错误是未能建立明确的领导。这意味着在迁移过程中的各个阶段中要确定谁负责明确的沟通,带领团队。在一个单一的部门,默认…

    2025年6月26日
    3
  • 常用字体颜色_常用字体大全

    常用字体颜色_常用字体大全1白色#FFFFFF2红色#FF00003绿色#00FF004蓝色#0000FF5牡丹红#FF00FF6青色#00FFFF7黄色#FFFF008黑色#0000009海蓝

    2022年8月6日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号