题解 | #按之字形顺序打印二叉树#

按之字形顺序打印二叉树

https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pRoot TreeNode类 
 * @return int整型二维数组
 * @return int* returnSize 返回数组行数
 * @return int** returnColumnSizes 返回数组列数
 */

#include <stdlib.h>
int** Print(struct TreeNode* root, int* returnSize, int** returnColumnSizes ) {
    (*returnSize) = 0;
    if(root == NULL)    return NULL;
    int **level = (int **)malloc(sizeof(int *)*1000);
    *returnColumnSizes =  (int*)malloc(sizeof(int) * 1000);
    int k = 0;
    int head = 750, nhead;
    int tail = 750, ntail;
    struct TreeNode * queue[1500];
    queue[tail++] = root;
    while(head != tail){
        ntail = tail;
        nhead = head;
        k = 0;
        level[*returnSize] = (int *)malloc(sizeof(int)*(ntail - head));
        while((head < ntail)&&(tail > nhead)){
            if((*returnSize)%2 == 0){
                struct TreeNode *p = queue[head];
                level[*returnSize][k++] = p->val; 
                if(p->left)
                    queue[tail++] = p->left;
                if(p->right)
                    queue[tail++] = p->right;
                head++;
            }
            else if((*returnSize)%2 != 0){
                struct TreeNode *p = queue[--tail];
                level[*returnSize][k++] = p->val;
                if(p->right)
                    queue[--head] = p->right;
                if(p->left)
                    queue[--head] = p->left;
            }
        }
        (*returnColumnSizes)[(*returnSize)++] = k;
    }
    return level;
}

全部评论

相关推荐

就前几天旅游的时候,打开抖音就经常刷到这类视频:以前是高学历学生、老师、主持人,现在做着团播、擦边主播的工作,以及那些经过精心包装的“职业转型”故事——从铺天盖地的VLOG到所谓的“04年夜场工作日记”,这些内容在初中升学、高考放榜等关键时间节点持续发酵。可以说非常直接且精准地在潜移默化地影响着心智尚未成熟的青少年,使其对特殊行业逐渐脱敏。那我就想问了:某些传播公司、平台运营者甚至某些夜场的老板,你们究竟在传递怎样的价值观?点开那些视频,评论区里也是呈现明显的两极分化:一种是​​经济下行论​​:“现在就业市场已经艰难到这种程度了吗?”​​一种是事实反驳派​​:这些创作者往往拥有名校背景,从事着...
牛客刘北:被环境教育的,为了能拿到足够的钱养活自己,不甘心也得甘心,现在的短视频传播的思想的确很扭曲,但是很明显,互联网玩上一年你就能全款提A6,但你全心全意不吃不喝工作一年未必能提A6,但是在高考中考出现这个的确很扭曲,在向大家传播“不上学,玩互联网也可以轻松年入百万”,不是人变了,是社会在变
预测一下26届秋招形势
点赞 评论 收藏
分享
06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务