# 前序遍历-迭代-LC144_二叉树的前序遍历
class Solution:def preorderTraversal(self, root: TreeNode) -> List[int]:# 根结点为空则返回空列表if not root:return []stack = [root]result = []while stack:node = stack.pop()# 中结点先处理result.append(node.val)# 右孩子先入栈if node.right:stack.append(node.right)# 左孩子后入栈if node.left:stack.append(node.left)return result# 中序遍历-迭代-LC94_二叉树的中序遍历
class Solution:def inorderTraversal(self, root: TreeNode) -> List[int]:if not root:return []stack = []  # 不能提前将root结点加入stack中result = []cur = rootwhile cur or stack:# 先迭代访问最底层的左子树结点if cur:     stack.append(cur)cur = cur.left  # 到达最左结点后处理栈顶结点    else:  cur = stack.pop()result.append(cur.val)# 取栈顶元素右结点cur = cur.right return result# 后序遍历-迭代-LC145_二叉树的后序遍历
class Solution:def postorderTraversal(self, root: TreeNode) -> List[int]:if not root:return []stack = [root]result = []while stack:node = stack.pop()# 中结点先处理result.append(node.val)# 左孩子先入栈if node.left:stack.append(node.left)# 右孩子后入栈if node.right:stack.append(node.right)# 将最终的数组翻转return result[::-1]

层序遍历


```python
def maxdepth(root):if not root:return 0result = []depth = 0 #记录深度queue = collections.deque()queue.append(root)while queue:size = len(queue)depth += 1for i in range(size):node = queue.popleft()result.append(node.data)if node.left:queue.append(node.left)if node.right:queue.append(node.right)return depth, result```python
#coding=utf-8class TreeNode(object):def __init__(self,data=None,left=None,right=None):self.data = dataself.left = leftself.right = right# 这一步是在每次调用某个结点时,自动调用.data的方法def __str__(self):return str(self.data)# 方法一
A, B, C, D, E, F, G, H, I = [TreeNode(x) for x in 'ABCDEFGHI']
A.left, A.right = B, C
B.right = D
C.left, C.right = E, F
E.left = G
F.left,F.right = H, I
print C.right# 方法二
A = TreeNode('A','B','C')
B = TreeNode('B',None,'D')
C = TreeNode('C','E','F')
E = TreeNode('E','G',None)
F = TreeNode('F','H','I')
print C.right

二叉树最 前序、中序、后序、层序遍历(最终)相关推荐

  1. java中二叉树_Java工程师面试1000题224-递归非递归实现二叉树前、中、后序遍历...

    224.使用递归和非递归实现二叉树的前.中.后序遍历 使用递归来实现二叉树的前.中.后序遍历比较简单,直接给出代码,我们重点讨论非递归的实现. class Node { public int valu ...

  2. C++实现二叉树 前、中、后序遍历(递归与非递归)非递归实现过程最简洁版本

    本文并非我所写,是复制的该链接中的内容: 最近学习二叉树,想编程实现递归和非递归的实现方式: 递归的方式就不说了,因为大家的递归程序都一样:但是对于非递归的实现方式, 根据这几天的查阅资料已看到差不多 ...

  3. 【LeetCode | 二叉树前、中、后序遍历{迭代法}实现】

    1.前序遍历 // 解题思路:利用栈的原理实现以迭代方法来前序遍历(根左右)二叉树 class Solution { public:vector<int> preorderTraversa ...

  4. java数据结构学习笔记-二叉树前、中、后序遍历

    public class BinaryTreeDemo {public static void main(String args[]){Employee emp1= new Employee(1,&q ...

  5. 【LeetCode | 二叉树前、中、后序遍历{递归法}实现】

    1.前序遍历 #include <iostream> #include <vector> #include <queue> #include <algorit ...

  6. 二叉树前、中、后序线索化及遍历

    public class ThreadedBinaryTree {public static void main(String[] args){Heronodes node1=new Heronode ...

  7. 二叉树的前、中、后、层序遍历整理(Java版本)

    源自快手电商一面 package cn.com.codingce.树.遍历;import cn.com.codingce.树.TreeNode;import java.util.ArrayList; ...

  8. 玩转二叉树 (25 分) 知中序遍历和前序遍历,求做个镜面反转后的层序遍历

    题目: 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设键值都是互不相等的正整数. 输入格式: 输入第 ...

  9. 序列化和反序列化二叉树 -----前序,中序,后序,层序

    目录 一.序列化和反序列化 1.什么是序列化和反序列化 二.前序遍历 1.序列化 1.问题分析 2.代码实现 2.反序列化 1.问题分析 2.代码实现 三.后序遍历 1.序列化 1.思路分析 2.代码 ...

  10. 二叉树的深度(前序 中序 后序 递归非递归搜素)、广度、搜索 C++

    a b c 使用 1 2 3 表示 /* 描述:二叉树的深度(前序 中序 后序 递归非递归搜素).广度.搜索 作者:jz 日期:20140819 */ #include<stdio.h> ...

最新文章

  1. MySQL双主一致性架构优化
  2. Fortinet“安立方”架构获得NSS Labs BDS 组测试多攻击维度100%检出率佳绩
  3. 使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息
  4. zabbix初始化设置时无法到DB配置页面
  5. C#中的集合、哈希表、泛型集合、字典
  6. Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构
  7. jvm(6)-java类文件结构(字节码文件)
  8. Integer包装类特殊之处
  9. chrome扩展之3:一步步跟我学开发一个表单填写扩展
  10. 然而毕博淮安的毕博淮安
  11. 优秀PSD电商促销BANNER模板|垂直化内容电商页面设计,需要注意哪些问题?
  12. C Tricks(二)—— 按块访问二维数组
  13. Spring Data JPA 梳理 - JPA是什么
  14. centos u盘安装_利用Win32 Disk Imager 实现U盘刻录ISO
  15. VC2005工程常用设置系统环境变量设置
  16. 圣经闪卡 - Holy Bible Flash Cards
  17. 8.5.3耳麦拔插事件调用流程分析
  18. 网络摄像头RTSP直播方案(三)
  19. 近千首流行音乐MP3直接下载
  20. jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)

热门文章

  1. labview 快捷键
  2. pycharm 激活相关
  3. 微信开发之调起摄像头、本地展示图片、上传下载图片
  4. 在wex5平台grid里面的gridselect下拉不能显示汉字问题
  5. 基于密度聚类的DBSCAN和kmeans算法比较
  6. 关于 Java 泛型的一些有趣的例子
  7. [IC]Lithograph(1)光刻技术分析与展望
  8. Android的ALSA声卡
  9. 24个能给你的博客带来流量的网站
  10. VS2015 scanf 函数报错 error C4996: 'scanf'