当前位置: 首页 > news >正文

数据结构:(LeetCode144)二叉树的前序遍历

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

示例 1:

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

输出:[1,2,3]

解释:

示例 2:

输入:root = [1,2,3,4,5,null,8,null,null,6,7,9]

输出:[1,2,4,5,6,7,3,8,9]

解释:

示例 3:

输入:root = []

输出:[]

示例 4:

输入:root = [1]

输出:[1]

提示:

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

进阶:递归算法很简单,你可以通过迭代算法完成吗?

注意返回值类型

/*** 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().*///函数:求二叉树节点的个数  思路:根节点+左子树节点个数+右子树节点的个数typedef struct TreeNode TreeNode;
int TreeSize(TreeNode*root)
{if(root==NULL){return 0;}return 1+TreeSize(root->left)+TreeSize(root->right);
}
//递归二叉树
void _preorTraversal(TreeNode*root,int*arr,int*pi)
{if(root==NULL){return;}arr[(*pi)++]=root->val;_preorTraversal(root->left,arr,pi);_preorTraversal(root->right,arr,pi);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {//1.先求出二叉树节点的个数*returnSize=TreeSize(root);//2.给数组动态开辟空间int*returnArr=(int*)malloc(sizeof(int)*(*returnSize));//3.递归二叉树int i=0;_preorTraversal(root,returnArr,&i);return returnArr;
}


http://www.mrgr.cn/news/18440.html

相关文章:

  • 希尔排序
  • Scrcpy简介
  • 粒子群算法电力系统【原创附代码】
  • 法人手机验证通常是为了确保企业相关操作的安全性和合法性。以下是一些常见的法人手机验证方法及测试要点:
  • 用RPC Performance Inspector 优化你的区块链
  • SpringCloud开发实战(一):搭建SpringCloud框架
  • java update有什么用
  • 高教社杯数模竞赛特辑论文篇-2016年A题:系泊系统设计(续)(附MATLAB代码实现)
  • htop的使用详解
  • 软件工程-图书管理系统的需求分析
  • 《比较教育学报》
  • 基于nodejs+vue+uniapp的学习资料销售平台小程序
  • 分类预测|基于鲸鱼优化WOA最小二乘支持向量机LSSVM的数据分类预测Matlab程序WOA-LSSVM 多特征输入多类别输出
  • 集成电路学习:什么是I/O输入输出
  • Linux C 内核编程 /proc 编程例子
  • 分体设计不入耳,舒适佩戴的AI耳机,塞那G6S体验
  • 备忘录1【java环境变量手动更改】
  • WordPress 集网址、资源、资讯于一体的导航类主题开心版
  • C++ STL find_first_of 用法
  • 智能化浪潮赋能工业制造与报废拆解,基于高精度YOLOv8全系列参数【n/s/m/l/x】模型开发构建工业生产场景下车辆不同部位智能化分割检测识别分系统