python递归深度遍历多叉树(Python实现二叉树的常见遍历操作总结7种方法)
类别:脚本大全 浏览量:576
时间:2022-01-14 02:53:52 python递归深度遍历多叉树
Python实现二叉树的常见遍历操作总结7种方法本文实例讲述了Python实现二叉树的常见遍历操作。分享给大家供大家参考,具体如下:
二叉树的定义:
|
class TreeNode: def __init__( self , x): self .val = x self .left = None self .right = None |
二叉树的前序遍历
递归
|
def preorder(root,res = []): if not root: return res.append(root.val) preorder(root.left,res) preorder(root.right,res) return res |
迭代
|
def preorder(root): res = [] if not root: return [] stack = [root] while stack: node = stack.pop() res.append(node.val) if node.right: stack.append(node.right) if node.left: stack.append(node,left) return res |
二叉树的中序遍历
递归
|
def inorder(root,res = []): if not root: return inorder(root.left,res) res.append(root.val) inorder(root.right,res) return res |
迭代
|
def inorder(root): stack = [] node = root res = [] while stack or node: while node: stack.append(node) node = node.left node = stack.pop() res.append(node.val) node = node.right return res |
二叉树的后序遍历
递归
|
def laorder(root,res = []): if not root: return laorder(root.left,res) laorder(root.right,res) res.append(root.val) return res |
迭代
|
def laorder(root): stack = [root] res = [] while stack: node = stack.pop() if node.left: stack.append(node.left) if node.right: stack.append(node.right) res.append(node.val) return res[:: - 1 ] |
二叉树的层次遍历
迭代
|
def levelorder(root): queue = [root] res = [] while queue: node = queue.pop( 0 ) if node.left: queue.append(node.left) if node.right: queue.append(node.right) res.append(node.val) return res |
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/wenkenza5368/article/details/79573333
您可能感兴趣
- python 文件操作(Python File文件 方法整理)
- pythonpulp怎么使用(pyhanlp安装介绍和简单应用)
- 如何用python做一个弹窗(python实现祝福弹窗效果)
- python3html怎么转换成pdf(Python实现html转换为pdf报告生成pdf报告功能示例)
- python搭建django框架(详解Python网络框架Django和Scrapy安装指南)
- python标准库操作键盘(Python中捕获键盘的方式详解)
- python中的pandas功能(Python常见的pandas用法demo示例)
- python怎么自动刷抖音(python实现抖音点赞功能)
- python怎么操作mysql(详解Python的数据库操作pymysql)
- python读取和写入数据excel(Python向excel中写入数据的方法)
- python函数大全详细(详解Python函数式编程—高阶函数)
- python eval函数原理(浅谈Python中eval的强大与危害)
- knn算法详细步骤(Python实现KNNK-近邻算法的示例代码)
- python获取字符串类型(python3利用ctypes传入一个字符串类型的列表方法)
- python中encode中文自定义编码(详解Python解决抓取内容乱码问题decode和encode解码)
- python装饰器初学者教程(Python3.5装饰器原理及应用实例详解)
- 红色文化进国企(红色文化进国企)
- 车友的选择| 轮毂该如何选(车友的选择轮毂该如何选)
- 秦海璐炫耀和王新军热恋蜜事,不料对方吐槽她吃饱后肚子撅老高(秦海璐炫耀和王新军热恋蜜事)
- 秦海璐一袭旗袍惹人倾心,将高级与淡雅展现的游刃有余(秦海璐一袭旗袍惹人倾心)
- 门外之见 海蛎子味 的表演,能走多远(门外之见海蛎子味)
- 三部冷门谍战剧,第一部2014年拍摄,至今还未播出(三部冷门谍战剧)
热门推荐
- python字典的值排序(python 对字典按照value进行排序的方法)
- xampp在什么操作系统中不能使用(xampp apache启动失效问题的解决方法)
- mysql索引应该注意的地方(关于MySQL索引知识的小妙招)
- js return false的作用
- html5实时通讯(使用Html5 Stream开发实时监控系统)
- docker 清除none镜像(删除docker images中为none的镜像操作)
- python浮点型和整数型(实例讲解Python中浮点型的基本内容)
- phpstudy中apache到期如何修改(phpStudy找不到Apache“服务名” 解决方法)
- sqlleftjoin详解(SQL JOIN 连接详细介绍及简单使用实例)
- 香港免费虚拟主机(香港虚拟主机租用要怎么选择?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9