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

文山专业网站建设做一个app平台需要多少钱

文山专业网站建设,做一个app平台需要多少钱,什么企业需要网站建设,聊城市网站建设目录 题目要求:给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 方法一:递归 方法二:迭代 思路分析: 复杂度分析 代码展示: 方法三:Morris 遍历 思路分析: 复杂度分析…

目录

题目要求:给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

方法一:递归

方法二:迭代

思路分析:

复杂度分析

代码展示:

方法三:Morris 遍历

思路分析:

复杂度分析

代码展示:


题目要求:给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

示例 1:

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

提示:

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

 

方法一:递归

递归的方法二叉树的前序遍历在之前的博客中已经写过,需要的小伙伴可以点击链接查看

递归求二叉树的前中后序遍历

【LeetCode】二叉树的前序遍历(递归,迭代,Morris遍历)

这篇文章主要来讲解非递归的方法对二叉树进行中序遍历

方法二:迭代

思路分析:


迭代的方式其实与递归是等价的,区别在于递归的时候隐式地维护了一个栈,而我们在迭代的时候

需要显式地将这个栈模拟出来,其余的实现与细节都相同,具体可以参考下面的代码

复杂度分析

  • 时间复杂度:O(n),其中 n 是二叉树的节点数。每一个节点恰好被遍历一次。

  • 空间复杂度:O(n),为迭代过程中显式栈的开销,平均情况下为 O(log⁡n),最坏情况下树呈现链状,为 O(n)

代码展示:

 public List<Integer> inorderTraversal(TreeNode root) {List <Integer> list = new ArrayList<>();Stack <TreeNode> stack = new Stack<>();//栈非空或者root非空while(root != null || !stack.isEmpty()){//先根后左入栈while(root != null){stack.push(root);root = root.left;}//此时root为空,说明上一个入栈的root没有左子树//没有左子树,可以出栈root = stack.pop();list.add(root.val);//此时判断右子树root = root.right;}return list;}

方法三:Morris 遍历

Morris 遍历使用二叉树节点中大量指向 null 的指针,由 Joseph Morris 于 1979 年发明。

思路分析:

将当前根节点的左侧最右侧节点的right指向当前根节点,省去了栈的维护,连接之后可以直接顺着节点遍历完整个二叉树,以下图为例:

6f9c88bc38954a898dd01d66029bf510.jpeg

复杂度分析

  • 时间复杂度:O(n),其中 n 是二叉树的节点数。每一个节点恰好被遍历一次。

  • 空间复杂度:O(1)

代码展示:

    public List<Integer> inorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();if(root == null){return list;}TreeNode cur1 = root;TreeNode cur2 = null;while(cur1 != null){cur2 = cur1.left;if(cur2 != null){while(cur2.right != null && cur2.right != cur1){cur2 = cur2.right;}//此时说明cur2走向了最右侧子树//1.还未连接,建立连接if(cur2.right != cur1){cur2.right = cur1;cur1 = cur1.left;continue;//否则说明已经走过,断开连接}else{cur2.right = null;list.add(cur1.val);}}else{list.add(cur1.val);}cur1 = cur1.right;}return list;}

http://www.hrbkazy.com/news/43739.html

相关文章:

  • 做网站用lunxseo搜索优化公司
  • 中国网站制作企业排行榜外包网站有哪些
  • 做1688网站到哪里找图片北京百度seo排名点击器
  • 怎么做网站的超级链接宁波受欢迎全网seo优化
  • 免费只做网站web网站模板
  • 系统开发报价seo外包公司多吗
  • 贵阳网站建设技术支持中国疫情最新数据
  • 做化妆品的一些网站百度关键词搜索指数查询
  • 教做西餐的网站手机网络优化软件
  • 建一个设计网站要多少钱搜索引擎收录查询
  • 室内设计效果图网站推荐线上推广有哪些渠道
  • 广州一流高校建设网站云服务器免费
  • 做网站卖流量营销渠道策略有哪些
  • 网站的图片水印怎么做百度首页推荐关不掉吗
  • 中企动力企业z云邮登陆最彻底的手机优化软件
  • 网站前端开发太原百度快速优化排名
  • php做网站麻烦吗全媒体运营师报名入口
  • 公司名称logo设计无排名优化
  • 南京企业网站制作哪家好网站制作多少钱一个
  • 家教网站开发公司私人浏览器
  • 东道设计官网连云港网站seo
  • 杭州江干网站建设优化20条措施
  • 网站开发工程师职业定位站长工具排行榜
  • 网站源码制作北京百度seo价格
  • 亚洲做爰直播网站如何免费找精准客户
  • 网站建设 百度云盘seo服务如何收费
  • dw怎么把网站做的漂亮搜索引擎营销的实现方法有
  • 分类信息网站成都搭建荆门今日头条新闻发布
  • 网站 云建站磁力狗
  • 官方网站做背景墙厂家青岛seo优化公司