二叉树遍历——递归算法
前序遍历:根 左 右
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
二叉树遍历——递归算法相关推荐
- 二叉树先序遍历递归算法(图解)
前言 二叉树的遍历 是树结构插入.删除.修改.查找和排序运算的前提, 是二叉树一切运算的基础和核心. 二叉树的遍历分为先序.中序.后序遍历, 通过递归实现时, 三者的区别不大, 连代码都不需要修改, ...
- 数据结构上机实践第九周项目2 - 二叉树遍历的递归算法
二叉树遍历的递归算法 递归问题总会成为我们的难点,代码量少,思维量确是很大,难是在所难免的,所以,在思维理解的同时结合实现代码理解,这样就很有可能让我们打开思路,理解的更深,本次实践将在二叉树算法的基 ...
- 二叉树遍历的非递归算法
大一下半期数据结构 知识点 递归算法虽然简单,但一般而言,其执行效率并不高.对于二叉树的遍历操作,可以仿照递归算法执行过程中工作栈的状态变化得到非递归算法. 一.前序遍历非递归算法 二叉树前序遍历非递 ...
- 遍历二叉树的递归算法与非递归算法
遍历二叉树的递归算法与非递归算法 先来看下面这棵二叉树.如图1.现在我们要对它进行先序遍历.递归思想:就是把这个大树拆分成N棵小树,每棵小树都进行一次先序遍历.再把这些遍历连合起来就是这棵树的先序遍历 ...
- 数据结构-----后序遍历二叉树非递归算法(利用堆栈实现)
一.非递归后序遍历算法思想 后序遍历的非递归算法中节点的进栈次数是两个,即每个节点都要进栈两次,第二次退栈的时候才访问节点. 第一次进栈时,在遍历左子树的过程中将"根"节点进栈,待 ...
- 【IT笔试面试题整理】给定二叉树先序中序,建立二叉树的递归算法
[试题描述]: 给定二叉树先序中序,建立二叉树的递归算法 其先序序列的第一个元素为根节点,接下来即为其左子树先序遍历序列,紧跟着是右子树先序遍历序列,固根节点已可从先序序列中分离.在中序序列中找到 ...
- 数据结构源码笔记(C语言):二叉树遍历
//二叉树遍历 #include<stdio.h> #include<malloc.h> #include<malloc.h> #define MaxSize 10 ...
- 二叉树遍历算法的六种c语言实现 递归与非递归
二叉树遍历分为三种: 先序遍历:先访问根结点,其次左节点,最后右节点 中序遍历:先访问左结点,其次跟节点,最后右节点 后序遍历:先访问左结点,其次右节点,最后根节点 三种遍历的递归算法实现形式类似,仅 ...
- 8606 二叉树遍历的建设和运营
8606 二叉树遍历的建设和运营 时限:1000MS 内存限制:1000K 问题: 编程题 语言: 无限 叙述性说明 用二进制表示的名单二叉树结构:按第一个二进制序列,以便输入节点值(一个字符) ...
- (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)
文章目录 一:二叉树遍历概述 二:二叉树深度优先遍历 (1)先序遍历-根左右(NLR) (2)中序遍历-左根右(LNR) (3)后序遍历-左右根(LRN) 总结:三种遍历方式动图演示 三:二叉树的层序 ...
最新文章
- nginx转发及后端服务器获取真实client的IP
- 【POJ 3026】Borg Maze
- 远程桌面连接mstsc 超扎心
- Redis-07Redis数据结构--有序集合ZSet
- clion phpstorm 等jetbrains编辑器激活教程
- C# 文件流操作 之 删除、复制、转移多个文件
- BZOJ 2763: [JLOI2011]飞行路线 spfa dp
- 修改云服务器上文件夹只读属性,求助:为什么我电脑里的文件夹会自动变为只读属性?...
- flash动画测试什么软件,flash测试(flash怎么测试动画)
- 显示硬件发展与视频开发系列(4)----移动时代
- C语言程序设计课程学习总结与反思
- Pvr_Controller
- 【汇正财经】什么是股权结构?
- CentOS报错make: *** [fuzz-commit-graph.o] Error 1
- java中计算一段时间内白天的时间和夜晚的时间
- 关于字符数组的初始化
- CVPR2020:Seeing Through Fog Without Seeing Fog
- 迅雷数据平台建设和应用案例
- ACM模板 | 学习笔记 数学相关
- select二级联动价格策略+js的eval()