二叉树遍历的超简单方法

参考链接:https://wenku.baidu.com/view/e5463e4203d8ce2f0166230a.html
已修改部分问题。

三种常见二叉树的遍历:

先序遍历的递归算法定义(简称根左右)
若二叉树非空,则依次执行如下操作:
  1.访问根结点;
  2.遍历左子树;
  3.遍历右子树。
中序遍历的递归算法定义(简称左根右)
若二叉树非空,则依次执行如下操作:
  1.遍历左子树;
  2.访问根结点;
  3.遍历右子树。
后序遍历得递归算法定义(简称左右根)
若二叉树非空,则依次执行如下操作:
  1.遍历左子树;
  2.遍历右子树;
  3.访问根结点。
在这里插入图片描述

现在以上面的二叉树为例子,说下三种遍历的方法

先序遍历(简称根左右):
1.从最上的第一层根结点F开始,按照 根左右 的原则,写出先序遍历顺序:FCE
2.继续对第二层进行分析,第二层有结点C和E。可以看见C、A、D和E、G可以组成两组小二叉树,那么现在对这两组小二叉树进行先序遍历,得出答案分别是CAD和EG。好了,现在把我们刚做出的答案CAD和EG代进去第一步做出的答案FCE里面,就得出答案:FC(AD)E(G)了
3.同理对第三层进行分析,D、B和G、H、P可以组成两组小二叉树,我们就对他们进行先序遍历,结果就是DB和GHP了。同样地,把这两个答案代进上一步的结果里面,答案就是FC(AD(B))E(G(HP))
4.把第三步答案里面的括号全部去掉,得出最终答案FCADBEGHP

中序遍历(简称左根右):
1.从最上的第一层根结点F开始,按照 左根右 的原则,写出先序遍历顺序:CFE
2.继续对第二层进行分析,写出答案(A)C(D)FE(G)
3.对第三层进行分析,写出答案(A)C((B)D)FE((H)G(P))
4.去掉括号,得出:ACBDFEHGP

后序遍历(简称左右根):
1.从最上的第一层根结点F开始,按照 左右根 的原则,写出先序遍历顺序:CEF
2.继续对第二层进行分析,写出答案(AD)C(G)EF
3.对第三层进行分析,写出答案(A(B)D)C((HP)G)EF
4.去掉括号,得出:ABDCHPGEF

二叉树遍历的超简单方法(详细、简单)相关推荐

  1. python反转字符串(简单方法)及简单的文件操作示例

    Python反转字符串的最简单方法是用切片: >>> a='123456' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号 ...

  2. 查看电脑ip地址的几种方法(详细简单)

    1.终端查询 win+R输入cmd 命令行输入ipconfig 上面的IPv4就是我电脑的ip地址 2.网络和Internet选项查询 点击菜单-设置 选择网络和internet选项 点击状态-属性( ...

  3. figma设计_一种在Figma中跟踪设计迭代的简单方法

    figma设计 As designers, telling a good story is always part of the job. A great story engages the clie ...

  4. 二叉树遍历之中序遍历算法(非递归、递归)入门详解

    一.引言 二叉树的遍历常见的方法有先序遍历.中序遍历.后序遍历和层次遍历等,本文给出了C语言版本的中序遍历二叉树的非递归算法和递归算法. 中序遍历的原理很简单,也就是把树根的访问放在中间.访问结点的次 ...

  5. 照片加水印怎么弄?方法详细介绍

    照片加水印怎么弄?如果喜欢摄影而且喜欢分享,那么你肯定会将自己拍摄的照片发到网上给别人欣赏.不过小编要提醒大家要注意照片的版权保护哦,互联网比较的开放,拿来主义盛行,如果你没有保护好自己的图片,可能你 ...

  6. 【编程3】二叉树遍历(LeetCode.102)

    文章目录 一.二叉树的层次遍历 1.题目描述--LeetCode.102 2.分析 3.实现 二.二叉树(Binary Tree) 1.相关概念 二叉树 满二叉树 完全二叉树 区分 2.二叉树的表示( ...

  7. java二叉树原理_史上最全二叉树遍历详解(Java实现,原理相同)

    二叉树遍历方法合集: 最近在LeetCode力扣上刷数据结构的二叉树合集,遇到的二叉树遍历方法,于是想理解透彻.本文讲解了二叉树遍历的四种方法,前.中.后序遍历. 对应题目: 94.二叉树的中序遍历 ...

  8. Python:二叉树遍历

    二叉树遍历共有四种方法,分别是前序遍历.中序遍历.后序遍历和层次遍历. 前序遍历: 父节点--左孩子--右孩子 中序遍历:左孩子--父节点--右孩子 后序遍历:左孩子--右孩子--父节点 层次遍历:利 ...

  9. 教你快速入门ElasticSearch,超详细简单~

    教你快速入门ElasticSearch,超详细简单~ 一. 初探ElasticSearch 1.1 什么是ElasticSearch? ElasticSearch,简称为ES,它是一个开源的高扩展的分 ...

最新文章

  1. 记个maven无法识别JAVA_HOME的问题 Error: JAVA_HOME is not defined correctly.
  2. php和java的语法区别_PHP 和 Java 的主要区别有哪些?
  3. linux devm_request_irq 引发BUG sleeping function called from invalid context问题
  4. 安装多个java后,java版本不对
  5. 【转】C#格式化字符串
  6. make and run
  7. php中数组下标,PHP数组介绍_php
  8. mysql数据库遍历表,其一字段获取上一条数据
  9. 【三维深度学习】多视角立体视觉 MVSNet代码解读
  10. 构建高性能.NET应用之配置高可用IIS服务器-第五篇 IIS常见问题之:工作进程回收机制(中)...
  11. linq to sql 详
  12. python的menu_Python Tkinter Menu使用教程 | 學步園
  13. 寻找Harris、Shi-Tomasi和亚像素角点
  14. python自带数据库是什么意思_原来Python自带了数据库,用起来真方便!
  15. 2021数模美赛A题翻译及思路
  16. UFO提示写日志文件ufoerr.log 错误
  17. 智点软件定制**服装工厂衣服加工计件工资软件的方案
  18. oracle remap schema,oracle 10g DATA PUMP 的REMAP_SCHEMA和REMAP_TABLESPA
  19. 从OPPO Finder看手机产品的差异化体现
  20. 从质量低到高带你了解影片名里面的TC、HD等的含义

热门文章

  1. 手摸手带你学移动端WEB开发
  2. 医疗IT系统在手术部供配电间的应用
  3. linux字符终端浏览器-----Lynx
  4. 简单粗暴的移动端图片浏览插件demo
  5. TASK SCHEDULE(任务计划)服务无法运行 解决方案
  6. python中如何将数字转换成中文数字_Python把数字变成中文的方法
  7. Learning to Rank 简介(转载)
  8. C++程序设计三周教学记录
  9. Linux下socket编程之UDP简单实现
  10. linux redis密码修改,Linux redis 安装并且修改密码