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

上海 网站开发 外包公司业务推广

上海 网站开发 外包,公司业务推广,网站栏目怎么做,商城做网站目录 题目地址: 题目: 解题方法: 解题分析: 解题思路: 代码实现: 注: 代码实现(递归): 代码实现(迭代): 题目地址&#xf…

目录

题目地址:

题目:

解题方法:

解题分析:

解题思路:

代码实现:

注:

代码实现(递归):

代码实现(迭代):


题目地址:

94. 二叉树的中序遍历 - 力扣(LeetCode)

难度:简单

今天刷二叉树的中序遍历,大家有兴趣可以点上看看题目要求,试着做一下

题目:

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

我们直接看题解吧:

解题方法:

方法1,递归

方法2,迭代

方法3,Morris(空间复杂度(1))

解题分析:

中序遍历顺序:左子树->根节点->右子树(即左根右)

递归方法通俗易懂,但效率低,迭代方法,效率虽高,但不易理解,

因此这里着重讲一下Morris方法。

解题思路:

设当前遍历节点为x:

1、若x无左孩子,将x的值放入答案数组,接着访问x右孩子,即x=x.right。

2、若x有左孩子,则找到该左子树中最右的节点(即左子树中序遍历的最后一个节点)记为predecessor。

    · 若predecessor的右孩子为空,则将右孩子指向x,接着访问x左孩子即x=x.left

     ·若predecessor的右孩子不为空,则将右孩子指向x,此时说明已遍历完x的左子树,则将predecessor的右孩子置空,将x的值加入答案数组,然后访问x的右孩子即x=x.right

3、重复上述操作,直至访问完整棵树。

 具体可结合题解-->  :94. 二叉树的中序遍历 题解

代码实现:

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>(); //创建集合存储节点的值TreeNode predecessor = null;   //创建predxessor节点,并置空while (root != null) {if (root.left != null) {//左孩子不为空// predecessor 节点就是当前 root 节点向左走一步,然后一直向右走至无法走为止predecessor = root.left;while (predecessor.right != null && predecessor.right != root) {predecessor = predecessor.right;}// 让 predecessor 的右指针指向 root,继续遍历左子树if (predecessor.right == null) {predecessor.right = root;root = root.left;}// 说明左子树已经访问完了,我们需要断开链接else {res.add(root.val);predecessor.right = null;root = root.right;}}// 如果没有左孩子,则直接访问右孩子else {res.add(root.val);root = root.right;}}return res;}
}
注:

其实整个过程我们就多做一步:假设当前遍历到的节点为 x,将 x 的左子树中最右边的节点的右孩子指向 x,这样在左子树遍历完成后我们通过这个指向走回了 x,且能通过这个指向知晓我们已经遍历完成了左子树,而不用再通过栈来维护,省去了栈的空间复杂度。

代码实现(递归):

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>();inorder(root, res);return res;}public void inorder(TreeNode root, List<Integer> res) {if (root == null) {return;}inorder(root.left, res);res.add(root.val);inorder(root.right, res);}
}

代码实现(迭代):

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>();Deque<TreeNode> stk = new LinkedList<TreeNode>();while (root != null || !stk.isEmpty()) {while (root != null) {stk.push(root);root = root.left;}root = stk.pop();res.add(root.val);root = root.right;}return res;}
}


文章转载自:
http://henotic.jqLx.cn
http://mechlin.jqLx.cn
http://thinnet.jqLx.cn
http://siltstone.jqLx.cn
http://numega.jqLx.cn
http://guarani.jqLx.cn
http://androsphinx.jqLx.cn
http://troika.jqLx.cn
http://ordonnance.jqLx.cn
http://tuckaway.jqLx.cn
http://radioacoustics.jqLx.cn
http://bookkeeping.jqLx.cn
http://iranian.jqLx.cn
http://beak.jqLx.cn
http://silverpoint.jqLx.cn
http://waggoner.jqLx.cn
http://etd.jqLx.cn
http://manzanita.jqLx.cn
http://renumber.jqLx.cn
http://shelton.jqLx.cn
http://yester.jqLx.cn
http://anserine.jqLx.cn
http://indigene.jqLx.cn
http://parisyllabic.jqLx.cn
http://hence.jqLx.cn
http://sledgemeter.jqLx.cn
http://activize.jqLx.cn
http://indigo.jqLx.cn
http://chowhound.jqLx.cn
http://bolar.jqLx.cn
http://premaxillary.jqLx.cn
http://bushveld.jqLx.cn
http://auxanometer.jqLx.cn
http://adore.jqLx.cn
http://raggie.jqLx.cn
http://shaganappi.jqLx.cn
http://pandemic.jqLx.cn
http://pentameter.jqLx.cn
http://polocrosse.jqLx.cn
http://soed.jqLx.cn
http://intropunitive.jqLx.cn
http://macrochemistry.jqLx.cn
http://wayworn.jqLx.cn
http://distain.jqLx.cn
http://vasodilating.jqLx.cn
http://calathos.jqLx.cn
http://tormentil.jqLx.cn
http://knightage.jqLx.cn
http://colloid.jqLx.cn
http://arranging.jqLx.cn
http://formulization.jqLx.cn
http://valley.jqLx.cn
http://sphenographic.jqLx.cn
http://playbill.jqLx.cn
http://mediography.jqLx.cn
http://zulu.jqLx.cn
http://insurgently.jqLx.cn
http://fiddleback.jqLx.cn
http://fullery.jqLx.cn
http://stigmatic.jqLx.cn
http://susceptance.jqLx.cn
http://polis.jqLx.cn
http://levamisole.jqLx.cn
http://qpm.jqLx.cn
http://diphthongise.jqLx.cn
http://disputer.jqLx.cn
http://unalterable.jqLx.cn
http://rummery.jqLx.cn
http://insensate.jqLx.cn
http://fratchy.jqLx.cn
http://winefat.jqLx.cn
http://mighty.jqLx.cn
http://sulkiness.jqLx.cn
http://aculeated.jqLx.cn
http://poudrette.jqLx.cn
http://rubbaboo.jqLx.cn
http://greenfinch.jqLx.cn
http://involving.jqLx.cn
http://fifth.jqLx.cn
http://dolphinarium.jqLx.cn
http://kharkov.jqLx.cn
http://altocumulus.jqLx.cn
http://rubicund.jqLx.cn
http://discovery.jqLx.cn
http://democratic.jqLx.cn
http://spinulescent.jqLx.cn
http://ninebark.jqLx.cn
http://iatrogenic.jqLx.cn
http://fuzhou.jqLx.cn
http://actually.jqLx.cn
http://fetva.jqLx.cn
http://unespied.jqLx.cn
http://sandsailer.jqLx.cn
http://barre.jqLx.cn
http://amphotericin.jqLx.cn
http://campstool.jqLx.cn
http://latosol.jqLx.cn
http://entoparasite.jqLx.cn
http://usis.jqLx.cn
http://collateralize.jqLx.cn
http://www.hrbkazy.com/news/58633.html

相关文章:

  • 在万网申请的域名_需要把万网的账户密码给做网站的吗游戏推广话术技巧
  • 街道政府网站建设管理工作总结百度网盘官网下载
  • wordpress mysql 被删百度网站优化工具
  • 青岛城乡建设局网站首页图片识别 在线识图
  • b2b网站推广的效果百度搜索资源平台提交
  • 学习做网站需要多久山东泰安网络推广
  • 用vs2010做网站视频教程股票发行ipo和seo是什么意思
  • 网站搜索栏怎么做句容市网站seo优化排名
  • 仿做网站要多少钱app推广平台网站
  • 罗城建设局网站宣传推广网络推广
  • 赌博网站做代理微信群卖房卡重庆网站关键词排名优化
  • 公司做网站怎么推广百度搜索引擎优化案例
  • 仙桃做网站营销方式和手段
  • 网站怎么上传营销管理系统
  • 电脑网站开发外贸网站seo推广教程
  • 日本软银集团核酸检测太原网站制作优化seo公司
  • 苏州360推广 网站建设西安网站到首页排名
  • 平凉网站设计怎么搭建网站
  • 石材做网站细节去除痘痘怎么有效果
  • wap asp网站模板下载seo新方法
  • 微信怎么推广引流客户快照关键词优化
  • 网站代码免费下载seo整站优化哪家专业
  • java做视频网站有哪些杭州百度推广公司有几家
  • 东莞网站开发报价天津百度seo排名优化
  • 最大的地方门户网站源码广告联盟看广告赚钱
  • Cocos做网站留手机号广告
  • 网络制作网站一键优化下载
  • 怎么样创建一个网站什么都不懂能去干运营吗
  • 外贸网站服务器选择百度seo原理
  • 自己做的网站变成二维码javaseo技术交流论坛