二叉树的翻转 Python
来源:互联网 发布:c 语言编程软件 编辑:程序博客网 时间:2024/05/11 16:05
还记得在4月时候的腾讯笔试时候就有这道题目,当时是要C++实现,然而我没学过C++,正好最近正在研究算法,就用Python写吧,其实很简单,之后还会把其他树结构的代码也贴上来。
class Node(object): #定义树的结点 def __init__(self, data=-1, lchild=None, rchild=None): self.data = data self.lchild = lchild self.rchild = rchild
class Binsearchtree(object): def __init__(self, data): self.root = Node(data)
def inverttree(self, treenode): #真正的翻转只有这8行代码 if treenode == None: return None temp = treenode.lchild treenode.lchild = treenode.rchild treenode.rchild = temp self.inverttree(treenode.lchild) self.inverttree(treenode.rchild)树的翻转其实就是递归遍历每一个结点,把所有结点的左孩子和右孩子互换,因为没有定义的孩子的data为None,所以只有一个孩子的结点也不会出现问题
树的结构如下:
上面代码省略了添加删除获取高度等等其他操作,我会在下一篇一同给出..
阅读全文
0 0
- 二叉树的翻转 Python
- 19翻转二叉树python
- 二叉树的翻转操作
- 二叉树的镜像翻转
- 算法学习-二叉树的翻转
- C++二叉树翻转
- 翻转二叉树
- 翻转二叉树
- 题目:翻转二叉树
- LintCode 翻转二叉树
- LinkCode-翻转二叉树
- 翻转二叉树
- 翻转二叉树
- 翻转二叉树
- LintCode_175_翻转二叉树
- 二叉树翻转
- lintcode ----翻转二叉树
- lintcode,翻转二叉树
- 购物车实现流程
- Spring Boot 快速入门
- FSNS数据格式
- 最全的linux基础学习视频
- #ifndef #define #endif
- 二叉树的翻转 Python
- 每日一题(18)—— 指定地址存入数据
- 个人对背包问题的二进制优化问题的理解
- nodeJS之流stream
- 字典树模板
- centos下安装docker
- 图论题
- php连接数据库
- 每天一点MySQL-分组数据