二叉树的前序遍历

目录

  • 题目
    • 题目要求
    • 示例
  • 解答
    • 方法一、
      • 实现思路
      • 时间复杂度和空间复杂度
      • 代码
    • 方法二、
      • 实现思路
      • 时间复杂度和空间复杂度
      • 代码

题目

二叉树的前序遍历

题目要求

在这里插入图片描述
题目链接

示例

解答

方法一、

递归法

实现思路

使用递归依次将该结点的数据,该结点的左子树的数据,该结点的右子树的数据都存入数组中,其中函数中i为一个地址,通过解引用这个地址就可以得到i的值,即数组中该第几个下标存值。

时间复杂度和空间复杂度

时间复杂度:O(N)
空间复杂度:O(N)

代码

void PreOrder(struct TreeNode* root,int* arr,int* i){if(root==NULL){return ;}//因为是先序遍历,所以先遍历该结点的值arr[*i]=root->val;//将i的值+1//因为传进来的i为地址,所以通过*i改变的是i地址里面的值,即改变的是主函数中的i的值(*i)++;//然后再遍历该结点左子树PreOrder(root->left,arr,i);//最后遍历该结点右子树PreOrder(root->right,arr,i);}//求出二叉树的结点个数int TreeSize(struct TreeNode* root){if(root==NULL){return 0;}return TreeSize(root->left)+TreeSize(root->right)+1;}
int* preorderTraversal(struct TreeNode* root, int* returnSize){//将数组长度返回*returnSize=TreeSize(root);int i = 0;//申请数组空间int* arr = (int*)malloc(sizeof(int)*(*returnSize));//将i的地址传入,这样在函数中可以通过*i修改i的值。PreOrder(root,arr,&i);return arr;
}

方法二、

实现思路

时间复杂度和空间复杂度

代码


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Nginx】Linux keepalived+nginx实现主从模式

Linux keepalivednginx实现主从模式 简述: 双机高可用方法目前分为两种:   主从模式:一台主服务器和一台从服务器,当配置了虚拟vip的主服务器发送故障时,从服务器将自动接管虚拟ip,服务将不会中断。但主…

微服务nacos或者yml配置内容部分加密jasypt

写在最前:因业务需要把nacos配置中的部分密码加密,不能暴露在外,本想用nacos官方的插拔插件nacos-aes-encryption-plugin的,但是比较复杂且官方文档说的不清不楚所以弃用,有兴趣的可以参考。链接:https://n…

0202hdfs的shell操作-hadoop-大数据学习

文章目录 1 进程启停管理2 文件系统操作命令2.1 HDFS文件系统基本信息2.2 介绍2.3 创建文件夹2.4 查看指定文件夹下的内容2.5 上传文件到HDFS2.6 查看HDFS文件内容2.7 下载HDFS文件2.8 HDFS数据删除操作 3 HDFS客户端-jetbrians产品插件3.1 Big Data Tools 安装3.2 配置windows…

WPF+Prism+WebApi 学习总结

一、基本概念 WPF:WPF(Windows Presentation Foundation)是(微软推出的)基于Windows的用户界面框架,提供了统一的编程模型,语言和框架,做到了分离界面设计人员与开发人员的工作;WPF…

CentOS 上通过 NFS 挂载远程服务器硬盘

NFS(Network File System)是一种用于在不同的计算机系统之间共享文件和目录的协议。它允许一个计算机系统将其文件系统的一部分或全部内容暴露给其他计算机系统,使其能够像访问本地文件一样访问这些内容。在这篇博客中,我们将介绍…

Android开发之性能测试工具Profiler

前言 性能优化问题,在我们开发时都会遇到,但是在小厂和对自己要求不严格的情况下,我都很少去做性能优化; 在性能优化上,基本大家都是通过自己的开发经验和性能分析工具来发现问题,今天给大家分享一下小编最…

Docker从认识到实践再到底层原理(一)|技术架构

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

多张图片转为pdf怎么弄?

多张图片转为pdf怎么弄?在网络传输过程中,为了避免图片格式文件出现差错,并确保图片的清晰度和色彩不因不同设备而有所改变,常见的做法是将图片转换为PDF格式。然而,当涉及到多张图片时,逐一转换将会变得相…

规范化:标准化、归一化、中心化

参考:重温归一化(MinMaxScaler)和标准化(StandardScaler)_Miracle8070-CSDN博客_standardscaler和minmaxscaler ​数据挖掘中数据变换比算法选择更重要 目录 一、介绍 二、为什么要规范化? 三、如何选择 1、归一化 2、标准化 3、不需要标准化的模…

reshape 和 view 的效率比较

如果 tensor 是连续的,reshape 返回的是视图,和 view 一致。 如果 tensor 是不连续的,view 用不了。 view 的存在是为了向后兼容。 参考:python - Whats the difference between reshape and view in pytorch? - Stack Overflo…

element浅尝辄止7:InfiniteScroll 无限滚动

滚动加载&#xff1a;滚动至底部时&#xff0c;加载更多数据。 1.如何使用&#xff1f; //在要实现滚动加载的列表上上添加v-infinite-scroll&#xff0c;并赋值相应的加载方法&#xff0c; //可实现滚动到底部时自动执行加载方法。<template><ul class"infinit…

MybatisPlus入门

MybatisPlus入门 1.MyBatis-Plus1.1 ORM介绍1.2 MyBatis-Plus介绍 2.代码链接数据库2.1 创建项目2.2 添加依赖2.3 链接数据库2.3.1 准备数据库2.3.2 链接数据库2.3.3 创建实体类 2.4 创建Mapper层2.5 创建Controller层2.6 浏览器访问测试 MybatisPlus官方网站&#xff1a; 官网…

微信8.0.41更新来了,看看有哪些变化吧

微信给我们带来了极大的方便&#xff0c;无论是日常聊天还是工作沟通&#xff0c;几乎离不开它。 时不时会给我一种熟悉的陌生感。 这个功能&#xff0c;好像我之前是没见过的。 就比如公众号信息流&#xff0c;刷着刷着就会发现&#xff0c;怎么会有看一看的信息推流会突然出现…

pytest pytest.ini 配置日志输出至文件

创建pytest.ini 文件 [pytest] log_file pytest_log.txt log_file_level INFO log_file_date_format %Y-%m-%d %H:%M:%S log_file_format %(asctime)s | %(filename)s | %(funcName)s | line:%(lineno)d | %(levelname)s | %(message)s import pytest import loggingdef …

【Linux】线程安全-互斥同步

文章目录 线程安全问题的引入线程互斥互斥概念互斥锁互斥锁的计数器当中如何保证原子性互斥锁基础API初始化互斥锁变量函数动态初始化静态初始化 加锁函数阻塞加锁非阻塞加锁带有超时时间的加锁 解锁函数销毁互斥锁函数 线程同步线程同步的必要性条件变量条件变量的使用原理条件…

从零开始的Hadoop学习(五)| HDFS概述、shell操作、API操作

1. HDFS 概述 1.1 HDFS 产出背景及定义 1&#xff09;HDFS 产生背景 随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;迫切 需要一种系统来管理多台机器上的…

文件转换:MultipartFile、BufferedImage

1、 MultipartFile转BufferedImage public static BufferedImage getBufferedImage(MultipartFile file){BufferedImage image ImageIO.read(file.getInputStream()); }2、 BufferedImage转MultipartFile public static MultipartFile fileCase(BufferedImage image) {//得到…

基于飞腾芯片的设计与调试入门指导

一、啥是自主可控 国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但是真正能叫做自主可控的CPU厂商,只有6家。那啥是自主可控?首先来不严谨的讲下现在数字芯片是怎么做的设计。FPGA大家都知道,可以通过Verilog…

SOD-123FL贴片整流二极管,有哪些型号?

近日发现&#xff0c;客户对整流二极管的需求特别大。常有客户前来东沃电子咨询整流二极管型号参数、选型、替代、价格、交期、样品等方面的问题。那么&#xff0c;关于DS1A、DS1B、DS1D、DS1G、DS1J、DS1K、DS1M贴片整流二极管&#xff0c;您知道多少呢&#xff1f;东沃电子推…

【微服务部署】06-日志集成

文章目录 1. EFK日志三件套集成1.1 核心组件1.2 部署 2. Exceptionless日志系统2.1 Exceptionless核心特性2.2 Exceptionless部署文件2.3 K8s中使用Exceptionless 1. EFK日志三件套集成 1.1 核心组件 Elasticsearch&#xff08;存储&#xff09;Fluentd&#xff08;收集器&am…