根据树的递归性,使用List存储下面这棵树,然后编写函数对其进行中序遍历。

递归实现中序遍历列表存储的二叉树

python列表模拟二叉树存放,列表 = [ [左子树] , 根节点 , [右子树] ]
列表里有列表,列表里又有列表。
之前用 treelist[1] == [ ]判断return,会有超限的问题。
后来想了想,用列表长度判断是否return似乎是个不错的选择。

def Traversal(treelist):        if len(treelist) == 1:print(treelist[0], end='')returnelif len(treelist) == 2:if type(treelist[0]) == list:Traversal(treelist[0])print(treelist[1], end='') else:print(treelist[0], end='')   Traversal(treelist[1])else:Traversal(treelist[0])print(treelist[1], end='')Traversal(treelist[2])
tree = [ [ [ 'D' ], 'B', [ 'E' ] ], 'A', [ 'C' ] ]
print('中序遍历二叉树:')
Traversal(tree)

中序遍历二叉树:
DBEAC

tree = [ [ [['F'], 'C', [ ['I'], 'G']], 'B' ], 'A', [ 'D', ['E', ['H'] ] ] ]
Traversal(tree)

FCIGBADEH

python 二叉树中序遍历相关推荐

  1. [Python]二叉树中序遍历代码以及思路

    思路: 把中序遍历分为一个有三个阶段的循环,左子节点入栈,没有右子节点出栈, 有右子节点则出栈并且右子节点入栈. 代码: 二叉树节点定义如下 class TreeNode:def __init__(s ...

  2. python二叉树中序遍历迭代法

    迭代法遍历二叉树:左根右 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left ...

  3. 基本题型记录-二叉树中序遍历

    由于本人基础较差,所以针对部分题型做一个记录,以免自己忘记 1.二叉树中序遍历 这个遍历方法可以搜一下博客上很多讲解,这里主要是记录一下代码实现,以下面的二叉树为例子 结果应该是 2.迭代法 2.1 ...

  4. 数据结构与算法练习-二叉树中序遍历

    python数据结构与算法练习-二叉树中序遍历 二叉树中序遍历 思路 python实现 二叉树中序遍历 链接: link. 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 样例 输入:ro ...

  5. leetcode算法题--二叉树中序遍历迭代法

    原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...

  6. C++ morris inorder二叉树中序遍历(附完整源码)

    C++ morris inorder二叉树中序遍历 morris inorder二叉树中序遍历算法的完整源码(定义,实现,main函数测试) morris inorder二叉树中序遍历算法的完整源码( ...

  7. 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为

    初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:() 8 3 2 5 1 6 4 7 3 2 8 5 1 4 6 7 3 8 2 5 ...

  8. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...

  9. 华为机试:二叉树中序遍历

    题目来源 华为机试:二叉树中序遍历 题目描述 题目解析 思路 class Solution{struct TreeNode{char ch;TreeNode *left;TreeNode *right ...

最新文章

  1. request.getRemoteAddr()和request.getRemoteHost()
  2. Linux下把目录拷贝到全部同名目录的脚本
  3. android 自定义属性步骤
  4. leetcode算法题--最多的不重叠子字符串★★
  5. Java 反射机制学习资料
  6. mybatis_SQL映射(1)
  7. 划分VLAN,以及VLAN间通信
  8. 大数据怎样帮助运维工程师实现无死角监控?
  9. uva 1463 - Largest Empty Circle on a Segment(二分+三分+几何)
  10. 语音识别在生活中的七个经典应用
  11. 苹果手机java设置_苹果java文件怎么打开?苹果手机安装JAVA程序的方法
  12. SPH(光滑粒子流体动力学)流体模拟实现五:PCISPH
  13. 【服务器】揭秘淘宝286亿海量图片存储与处理架构
  14. 朴实无华!注意力机制神经网络解析
  15. 利用PHP的特性做免杀Webshell
  16. 微信小程序:用户头像的更改与保存
  17. jQueryUI皮肤下载、jQgrid中更换皮肤
  18. 文件下载(解决中文文件名下载乱码问题)(二)
  19. web2.0带来的狂潮
  20. 小程序 cover-view 字体_可升降、护眼、高清的明基PD2500Q显示器解决了程序猿99%的烦恼...

热门文章

  1. sh脚本文件使用mysqldump备份与恢复,恢复views、function、procedure时踩坑与解决
  2. C# SqlCommand 数据库连接操作
  3. 对iPhoneX的一些思考
  4. Windows下搭建Mysql集群
  5. 网易如何服务器物品叠加,网易buff怎么把物品放到buff背包 | 手游网游页游攻略大全...
  6. 基于JAVA的高校教务管理系统
  7. TextView设置一行最多显示5个字是什么属性
  8. max函数与min函数(数的大小比较)
  9. Apowersoft 2.7.8 Mac破解版
  10. matlab将多张tif文件合成为一张tif