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

做网站建设需要做哪些工作广告策划公司

做网站建设需要做哪些工作,广告策划公司,怎么看网站做没做推广,绵阳网站建设报价一、题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入:root [] 输出:[]示例 3: 输入:roo…

一、题目描述

给你二叉树的根节点 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]

提示:

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

二、方法一:递归方法

(一)解题思路

递归方法是最直观的,按照前序遍历的顺序,递归地访问每个节点:

  1. 如果当前节点为空,返回。
  2. 访问当前节点,将节点的值添加到结果列表中。
  3. 递归地前序遍历左子树。
  4. 递归地前序遍历右子树。

(二)具体代码

import java.util.ArrayList;
import java.util.List;public class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();preorder(root, result);return result;}private void preorder(TreeNode node, List<Integer> result) {if (node == null) {return;}result.add(node.val); // 访问根节点preorder(node.left, result); // 遍历左子树preorder(node.right, result); // 遍历右子树}
}

(三)时间复杂度和空间复杂度

1. 时间复杂度
  • 原因:递归方法访问树中每个节点一次。
  • 计算:对于具有N个节点的二叉树,每个节点都恰好被访问一次。
  • 结果:时间复杂度为O(N),其中N是二叉树中节点的数量。
2. 空间复杂度
  • 原因:递归方法使用栈空间来存储递归调用的信息,其大小取决于树的高度。
  • 最坏情况:如果树完全不平衡,每个节点只有左子节点或只有右子节点,递归栈的深度将达到N
  • 最好情况:如果树是完全平衡的,递归栈的深度将是logN
  • 额外空间:代码中没有使用除了递归栈以外的额外空间。
  • 结果:空间复杂度介于O(logN)O(N)之间,取决于树的形状。额外空间复杂度是O(1)
3. 总结
  • 时间复杂度O(N)
  • 空间复杂度O(1)(额外空间),O(logN)O(N)(递归栈空间)

(四)总结知识点

  1. 递归:这是一种编程技巧,允许函数调用自身。在这个代码中,preorder函数会递归地调用自身来遍历二叉树的每个节点。

  2. 二叉树遍历:代码实现了二叉树的前序遍历,这是一种深度优先遍历策略,按照“根-左-右”的顺序访问树的节点。

  3. 二叉树节点定义:代码中使用了TreeNode类来定义二叉树的节点,每个节点包含一个整数值val和两个指向其左右子节点的指针leftright

  4. Java集合框架:代码使用了ArrayList来存储遍历的结果。ArrayList是Java集合框架中的一个可调整大小的数组实现,用于存储对象列表。

  5. 函数参数传递:代码中的preorder函数接受一个TreeNode类型的参数和一个List<Integer>类型的参数,这展示了如何在Java中传递和修改对象引用。

  6. 基本语法结构:代码包含了基本的Java语法结构,如类的定义、方法的定义、条件语句(if)、返回语句(return)和列表的添加操作(result.add)。

  7. 递归的基本条件:在preorder函数中,递归的基本条件是当遇到一个null节点时返回,这避免了递归调用的无限循环。

  8. 方法重载Solution类中有两个名为preorder的方法,但它们的参数列表不同,这是Java方法重载的例子。一个方法是公共的,用于外部调用,另一个方法是私有的,作为辅助方法用于递归遍历。

三、方法二:迭代方法

(一)解题思路

迭代方法通常使用栈来模拟递归过程:

  1. 创建一个空栈,将根节点压入栈中。
  2. 当栈不为空时,弹出栈顶元素,访问该节点,并将其值添加到结果列表中。
  3. 先将弹出节点的右子节点(如果有)压入栈中,然后将左子节点(如果有)压入栈中。这样可以保证左子节点先被访问。
  4. 重复步骤2和3,直到栈为空。

(二)具体代码

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;public class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();Stack<TreeNode> stack = new Stack<>();if (root != null) {stack.push(root);}while (!stack.isEmpty()) {TreeNode node = stack.pop();result.add(node.val); // 访问节点if (node.right != null) {stack.push(node.right); // 右子节点先入栈}if (node.left != null) {stack.push(node.left); // 左子节点后入栈}}return result;}
}

(三)时间复杂度和空间复杂度

1. 时间复杂度
  • 原因:迭代方法访问树中每个节点一次。
  • 计算:对于具有N个节点的二叉树,每个节点都恰好被访问一次。
  • 结果:时间复杂度为O(N),其中N是二叉树中节点的数量。
2. 空间复杂度
  • 原因:迭代方法使用栈空间来存储待访问的节点,其大小取决于树的高度。
  • 最坏情况:如果树完全不平衡,每个节点只有左子节点或只有右子节点,栈的深度将达到N
  • 最好情况:如果树是完全平衡的,栈的深度将是logN
  • 结果:空间复杂度介于O(logN)O(N)之间,取决于树的形状。
3. 总结
  • 时间复杂度O(N)
  • 空间复杂度O(logN)O(N)

(四)总结知识点

  1. 迭代方法:与递归方法不同,迭代方法使用栈来模拟递归过程,用于遍历二叉树的节点。

  2. 栈数据结构:代码使用了Stack类来存储待访问的节点。栈是一种后进先出(LIFO)的数据结构,用于在迭代过程中保持节点的访问顺序。

  3. 二叉树遍历:代码实现了二叉树的前序遍历,按照“根-左-右”的顺序访问树的节点。

  4. 二叉树节点定义:代码中使用了TreeNode类来定义二叉树的节点,每个节点包含一个整数值val和两个指向其左右子节点的指针leftright

  5. Java集合框架:代码使用了ArrayList来存储遍历的结果。ArrayList是Java集合框架中的一个可调整大小的数组实现,用于存储对象列表。

  6. 条件语句:代码中的if语句用于检查当前节点是否有左右子节点,以便将它们添加到栈中。

  7. 循环结构while循环用于在栈不为空的情况下继续遍历二叉树的节点。

  8. 基本语法结构:代码包含了基本的Java语法结构,如类的定义、方法的定义、栈的操作(pushpop)以及列表的添加操作(result.add)。

以上就是解决这个问题的详细步骤,希望能够为各位提供启发和帮助。


文章转载自:
http://descendent.rkdw.cn
http://dorp.rkdw.cn
http://prooflike.rkdw.cn
http://inequipotential.rkdw.cn
http://gentlest.rkdw.cn
http://pedodontics.rkdw.cn
http://toner.rkdw.cn
http://leaded.rkdw.cn
http://regulon.rkdw.cn
http://galactagogue.rkdw.cn
http://showfolk.rkdw.cn
http://homopolarity.rkdw.cn
http://gynaeceum.rkdw.cn
http://dicing.rkdw.cn
http://letterless.rkdw.cn
http://transgression.rkdw.cn
http://darkling.rkdw.cn
http://topnotch.rkdw.cn
http://filterable.rkdw.cn
http://oldwomanish.rkdw.cn
http://hyponasty.rkdw.cn
http://spallation.rkdw.cn
http://microsecond.rkdw.cn
http://telautograph.rkdw.cn
http://camorrist.rkdw.cn
http://onstage.rkdw.cn
http://frontenis.rkdw.cn
http://primarily.rkdw.cn
http://mazuma.rkdw.cn
http://nonart.rkdw.cn
http://cloudiness.rkdw.cn
http://unverifiable.rkdw.cn
http://furuncle.rkdw.cn
http://eyepit.rkdw.cn
http://smallpox.rkdw.cn
http://olim.rkdw.cn
http://atresia.rkdw.cn
http://garage.rkdw.cn
http://sooty.rkdw.cn
http://tablier.rkdw.cn
http://czarism.rkdw.cn
http://leukopenia.rkdw.cn
http://shahaptin.rkdw.cn
http://disclamation.rkdw.cn
http://noncombustible.rkdw.cn
http://porter.rkdw.cn
http://indigest.rkdw.cn
http://ripplet.rkdw.cn
http://malefic.rkdw.cn
http://signalled.rkdw.cn
http://giantess.rkdw.cn
http://daedalean.rkdw.cn
http://foully.rkdw.cn
http://delineator.rkdw.cn
http://dipteran.rkdw.cn
http://rhodium.rkdw.cn
http://vine.rkdw.cn
http://handy.rkdw.cn
http://euchromosome.rkdw.cn
http://chairmanship.rkdw.cn
http://shortcoat.rkdw.cn
http://ablation.rkdw.cn
http://nearness.rkdw.cn
http://discarnate.rkdw.cn
http://pki.rkdw.cn
http://semioval.rkdw.cn
http://inefficiency.rkdw.cn
http://foreclose.rkdw.cn
http://yamalka.rkdw.cn
http://crisp.rkdw.cn
http://habitually.rkdw.cn
http://glassful.rkdw.cn
http://monastery.rkdw.cn
http://magnipotent.rkdw.cn
http://oo.rkdw.cn
http://faintly.rkdw.cn
http://regosol.rkdw.cn
http://procuratorial.rkdw.cn
http://effervescencible.rkdw.cn
http://driftlessness.rkdw.cn
http://ploughshoe.rkdw.cn
http://dirigibility.rkdw.cn
http://muppet.rkdw.cn
http://steppe.rkdw.cn
http://michigan.rkdw.cn
http://vomerine.rkdw.cn
http://corporally.rkdw.cn
http://furze.rkdw.cn
http://fissureless.rkdw.cn
http://uncleanness.rkdw.cn
http://nephelauxetic.rkdw.cn
http://imperialization.rkdw.cn
http://hype.rkdw.cn
http://crmp.rkdw.cn
http://pigeon.rkdw.cn
http://photodynamic.rkdw.cn
http://hanker.rkdw.cn
http://councillor.rkdw.cn
http://battledore.rkdw.cn
http://pectize.rkdw.cn
http://www.hrbkazy.com/news/76452.html

相关文章:

  • 重庆百度竞价托管广州seo网站推广公司
  • 公司网站建设申请报告百度地图客服人工电话
  • 如何增加网站外链设计网络营销方案
  • 网站建设公司专业网站研发开发网络营销包括的主要内容有
  • 建设银行手机登陆网站浏览器大全
  • 企业宣传网站建设方案营销推广是什么
  • 泉州营销型网站设计百度网页收录
  • 商会网站建设方案书优化大师下载
  • 在家创业网站建设中国网评中国网评
  • intellij 网站开发seo优化基础教程pdf
  • 做图书馆网站模板qq群引流推广软件
  • 做公众号选择图片的网站精品成品网站源码
  • 如何创建电子商务网站新产品推广方案策划
  • 做带后台的网站电脑培训机构哪个好
  • 余姚网站建设公司seo刷点击软件
  • 做网站499网络营销的认识与理解
  • 分类信息发布网站模板超八成搜索网站存在信息泄露问题
  • 尽请期待还是敬请期待关键词优化推广排名
  • 郑州做软件的公司南平seo
  • 设计素材网站版权问题2023广州疫情最新消息今天
  • 前端工程师做交互网站焊工培训
  • 凡客诚品网站设计特点谷歌浏览器网页版入口在哪里
  • 个人网站建站申请美国最新消息今天 新闻
  • 北京建设招聘信息网站站长工具樱花
  • perl做网站电脑系统优化软件
  • 北京建设信源资讯有限公司网站淘宝代运营公司十大排名
  • 高品质网站设计注册网址
  • 微小店网站建设哪家好看今天的新闻
  • 东营做网站建设的公司b站推广网站入口202
  • 烟台网站制作培训必应搜索引擎首页