Leetcode144. 二叉树的前序遍历-C语言

文章目录

题目介绍


题目分析

题目要求我们输出二叉树按前序遍历排列的每个节点的值。

解题思路

1.创建一个数组来储存二叉树节点的值

2.根据二叉树的大小来开辟数组的大小

c 复制代码
int Treesize(struct TreeNode* root)
{
    if(root==NULL)
    return 0;
    
    return 1+Treesize(root->left)+Treesize(root->right);
}

 int*new=(int*)malloc(sizeof(int)*Treesize(root));

3.边前序遍历边向创建的数组中存入二叉树节点的值

c 复制代码
void preorder(struct TreeNode* root,int*new,int*newsize)
{
    if(root==NULL)
    return;
    new[(*newsize)++]=root->val;
    preorder(root->left,new,newsize);
    preorder(root->right,new,newsize);
}

完整代码

c 复制代码
int Treesize(struct TreeNode* root)
{
    if(root==NULL)
    return 0;
    
    return 1+Treesize(root->left)+Treesize(root->right);
}

void preorder(struct TreeNode* root,int*new,int*newsize)
{
    if(root==NULL)
    return;
    new[(*newsize)++]=root->val;
    preorder(root->left,new,newsize);
    preorder(root->right,new,newsize);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
    int*new=(int*)malloc(sizeof(int)*Treesize(root));
   *returnSize=0;
 preorder(root,new,returnSize);
 return new;
}
相关推荐
SuperHeroWu716 分钟前
【算法】强化学习中奖励和损失函数的关系
算法·环境·强化学习·损失函数·奖励
voidmort19 分钟前
9. 微调(Fine-tuning)的数学原理
人工智能·算法·机器学习
晚风吹红霞27 分钟前
C++ stack 和 queue 完全指南:适配器模式与双端队列的奥秘
c++·算法·适配器模式
casual~42 分钟前
十六届蓝桥杯国赛个人题解
经验分享·学习·算法·蓝桥杯
he___H1 小时前
B、B+树和vue部分知识
数据结构·vue.js·b树
方也_arkling1 小时前
【Java-Day18】API篇-Arrays
java·算法·排序算法
吴可可1231 小时前
Curve.GetSplitCurves高效分割技巧
算法
社交怪人1 小时前
【最大数】信息学奥赛一本通C语言解法(题号2056)
c语言
社交怪人1 小时前
【判断正负】信息学奥赛一本通C语言解法(题号1039)
c语言