二叉树
binary-tree
_illusion_
知乎主页:https://www.zhihu.com/people/illusions-29/posts
展开
-
【python数据结构与算法】二叉树的前序、中序、后序遍历(非递归)以及二叉树的层次遍历
二叉树的遍历:非递归版:注意一下所谓“左中右”的含义,这就是前序中序后序本来面目。前序中序后序,三者是以“中”先打印还是后打印区分的前序遍历:中左右:当前节点(中)为头,弹栈顺序是先左再右 步骤 先把当前节点的left和right按照先右后左的次序压栈。遇到节点为None,则跳过。 while内:后面继续压栈的节点,是刚弹出的那个节点的左右节点。原因?“中左右”,指的是该...原创 2019-01-05 17:18:15 · 1091 阅读 · 2 评论 -
【python数据结构与算法】二叉树的“后继节点”(二叉树的下一个节点)、二叉树的序列化和反序列化
1.二叉树的“后继节点”(二叉树的下一个节点)剑指offer题目链接:二叉树的下一个节点二叉树的后继结点定义:一棵二叉树的中序遍历中,每个节点的下一个节点称为该节点的后继结点二叉树的前驱结点定义:一棵二叉树的中序遍历中,每个节点的前一个节点称为该节点的前驱结点那么,如何获得一个给定节点的后继结点?注意这个节点所在的二叉树的所有节点多一条parent指针,指向自己的父节点。头结...原创 2019-01-05 17:37:07 · 702 阅读 · 1 评论 -
【python数据结构与算法】平衡二叉树
判断一棵二叉树是否为平衡二叉树:LeetCode:110.平衡二叉树;剑指offer:平衡二叉树用递归函数处理二叉树是否平衡的判断问题: 原因:因为递归函数很强大。对于二叉树的递归遍历而言,每个二叉树节点都会函数访问3次,分别是“一开始”、“其左子树遍历完之后”和“其右子树遍历完之后”。因而我们可以利用这样的性质来规划我们的函数 递归过程要返回给父节点的信息:子树是否平衡、子树高...原创 2019-01-07 00:59:57 · 1244 阅读 · 2 评论