题解 | #从上往下打印二叉树#

从上往下打印二叉树

https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param root TreeNode类 
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
#include <stdlib.h>
int* PrintFromTopToBottom(struct TreeNode* root, int* returnSize ) {
    // write code here
    int* ret = (int*)malloc(sizeof(int)*1001);  //为返回值申请空间
    int retSize = 0;        //存储返回值长度
    struct TreeNode* st[1001];  //模拟队列
    int stStart = -1, stEnd = -1;   //队列头和队列尾指针
    struct TreeNode* node;      //出队元素
    if(root == NULL) return NULL;   //如果传入二叉树为空,返回NULL
    st[++stEnd] = root;         //root入队
    while(stStart < stEnd){     //队列不为空
        node = st[++stStart];   //出队
        if(node->left)          //如果出队元素左右子树不为空,则分别入队
            st[++stEnd] = node->left;
        if(node->right)
            st[++stEnd] = node->right;
        ret[retSize++] = node->val; //将出队元素的val放入返回数组中
    }
    *returnSize = retSize;  //更新返回数组的长度
    return ret;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:30
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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