zl程序教程

您现在的位置是:首页 >  后端

当前栏目

144. 二叉树的前序遍历

二叉树遍历 前序 144
2023-09-14 09:06:52 时间

144. 二叉树的前序遍历

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

示例 1:
在这里插入图片描述

输入:root = [1,null,2,3]
输出:[1,2,3]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

示例 4:
在这里插入图片描述

输入:root = [1,2]
输出:[1,2]

示例 5:
在这里插入图片描述

输入:root = [1,null,2]
输出:[1,2]

解题代码如下:

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


/**
 * Note: The returned array must be malloced, assume caller calls free().
 */

int len;
 void pre_order(struct TreeNode* root){
     if(root){
         len++;
         pre_order(root->left);
         pre_order(root->right);

     }
 }


  void pre_order2(struct TreeNode* root,int *re){
     if(root){
         re[len++]=root->val;
         pre_order2(root->left,re);
         pre_order2(root->right,re);

     }
 }
int* preorderTraversal(struct TreeNode* root, int* returnSize){
    len=0;
    pre_order(root);
    int *re=(int *)malloc(sizeof(int)*len);
    len=0;
    pre_order2(root,re);
    *returnSize=len;
    return re;
    


}