前序遍历:根 左 右

public static void preOrder(TreeNode root) {if(root == null) {return  ; }//根 左 右//第一次成为栈顶元素时打印System.out.println(root.val);preOrder(root.left);preOrder(root.right);}

中序遍历:左 根 右

public static void midpreOrder(TreeNode root) {if(root == null) {return  ; }//左 根 右//第二次成为栈顶元素时打印midpreOrder(root.left);System.out.println(root.val);midpreOrder(root.right);}

后序遍历:左 右 根

public static void behOrder(TreeNode root) {if(root == null) {return  ; }//左 右 根//第三次成为栈顶元素时打印behOrder(root.left);behOrder(root.right);System.out.println(root.val);
}

层序遍历:从上至下,从左至右

public static void levelOrder(TreeNode root,int i,ArrayList list) {if(root == null) {return ;}int length = list.size();if(length <= i) {for(int j = 0;j <=i-length;j++) {list.add(length+j,null);}}list.set(i,root.val);levelOrder(root.left,i*i,List);levelOrder(root.right,i*i+1,List);
}

参考视频链接:https://b23.tv/QPKyT3

二叉树遍历——递归算法相关推荐

  1. 二叉树先序遍历递归算法(图解)

    前言 二叉树的遍历 是树结构插入.删除.修改.查找和排序运算的前提, 是二叉树一切运算的基础和核心. 二叉树的遍历分为先序.中序.后序遍历, 通过递归实现时, 三者的区别不大, 连代码都不需要修改, ...

  2. 数据结构上机实践第九周项目2 - 二叉树遍历的递归算法

    二叉树遍历的递归算法 递归问题总会成为我们的难点,代码量少,思维量确是很大,难是在所难免的,所以,在思维理解的同时结合实现代码理解,这样就很有可能让我们打开思路,理解的更深,本次实践将在二叉树算法的基 ...

  3. 二叉树遍历的非递归算法

    大一下半期数据结构 知识点 递归算法虽然简单,但一般而言,其执行效率并不高.对于二叉树的遍历操作,可以仿照递归算法执行过程中工作栈的状态变化得到非递归算法. 一.前序遍历非递归算法 二叉树前序遍历非递 ...

  4. 遍历二叉树的递归算法与非递归算法

    遍历二叉树的递归算法与非递归算法 先来看下面这棵二叉树.如图1.现在我们要对它进行先序遍历.递归思想:就是把这个大树拆分成N棵小树,每棵小树都进行一次先序遍历.再把这些遍历连合起来就是这棵树的先序遍历 ...

  5. 数据结构-----后序遍历二叉树非递归算法(利用堆栈实现)

    一.非递归后序遍历算法思想 后序遍历的非递归算法中节点的进栈次数是两个,即每个节点都要进栈两次,第二次退栈的时候才访问节点. 第一次进栈时,在遍历左子树的过程中将"根"节点进栈,待 ...

  6. 【IT笔试面试题整理】给定二叉树先序中序,建立二叉树的递归算法

    [试题描述]:  给定二叉树先序中序,建立二叉树的递归算法 其先序序列的第一个元素为根节点,接下来即为其左子树先序遍历序列,紧跟着是右子树先序遍历序列,固根节点已可从先序序列中分离.在中序序列中找到 ...

  7. 数据结构源码笔记(C语言):二叉树遍历

    //二叉树遍历 #include<stdio.h> #include<malloc.h> #include<malloc.h> #define MaxSize 10 ...

  8. 二叉树遍历算法的六种c语言实现 递归与非递归

    二叉树遍历分为三种: 先序遍历:先访问根结点,其次左节点,最后右节点 中序遍历:先访问左结点,其次跟节点,最后右节点 后序遍历:先访问左结点,其次右节点,最后根节点 三种遍历的递归算法实现形式类似,仅 ...

  9. 8606 二叉树遍历的建设和运营

    8606 二叉树遍历的建设和运营 时限:1000MS  内存限制:1000K 问题: 编程题   语言: 无限 叙述性说明 用二进制表示的名单二叉树结构:按第一个二进制序列,以便输入节点值(一个字符) ...

  10. (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)

    文章目录 一:二叉树遍历概述 二:二叉树深度优先遍历 (1)先序遍历-根左右(NLR) (2)中序遍历-左根右(LNR) (3)后序遍历-左右根(LRN) 总结:三种遍历方式动图演示 三:二叉树的层序 ...

最新文章

  1. nginx转发及后端服务器获取真实client的IP
  2. 【POJ 3026】Borg Maze
  3. 远程桌面连接mstsc 超扎心
  4. Redis-07Redis数据结构--有序集合ZSet
  5. clion phpstorm 等jetbrains编辑器激活教程
  6. C# 文件流操作 之 删除、复制、转移多个文件
  7. BZOJ 2763: [JLOI2011]飞行路线 spfa dp
  8. 修改云服务器上文件夹只读属性,求助:为什么我电脑里的文件夹会自动变为只读属性?...
  9. flash动画测试什么软件,flash测试(flash怎么测试动画)
  10. 显示硬件发展与视频开发系列(4)----移动时代
  11. C语言程序设计课程学习总结与反思
  12. Pvr_Controller
  13. 【汇正财经】什么是股权结构?
  14. CentOS报错make: *** [fuzz-commit-graph.o] Error 1
  15. java中计算一段时间内白天的时间和夜晚的时间
  16. 关于字符数组的初始化
  17. CVPR2020:Seeing Through Fog Without Seeing Fog
  18. 迅雷数据平台建设和应用案例
  19. ACM模板 | 学习笔记 数学相关
  20. select二级联动价格策略+js的eval()

热门文章

  1. 如何正确使用条码标签打印软件
  2. matlab调用refprop9.0,Matlab调用REFPROP完全说明
  3. 人工智能白皮书(2022年)
  4. 用iMindMap制作健康生活计划思维导图
  5. IE8_XP安装包.zip
  6. SQL 获取本周日期
  7. 【AD】安装AD18教程
  8. IAR软件安装图文教程
  9. fiddler中文乱码解决方案
  10. java高级类_Java私塾跟我学系列——JAVA篇 第五章 Java高级类特性