(该篇基本等价于up主视频的学习笔记记录)
基本概念
- 根节点:顶层节点,只会作为父节点、不会作为其他节点的子节点
- 父节点、子节点:节点存在分支,那这个节点与其分裂出的节点为父子关系
- 非叶子节点(存在至少一个子节点的节点)、叶子节点(没有子节点的节点)
- 二叉树:每个节点最多分裂出左右子节点的数
- 搜索二叉树:每个节点上的值大于其左子树上所有节点的节点值,小于其右子树上所有节点的节点值
- 完全二叉树:从上到下,从左到右节点无缺失的二叉树
- 平衡树二叉树:平衡树是二叉搜索树和堆合并构成的数据结构,它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
- 二叉树遍历(遍历的顺序以根节点的位置命名,左到右不变)
- 前序遍历:根节点→左子节点→右子节点
- 中序遍历:左子节点→根节点→右子节点
- 后序遍历:左子节点→右子节点→根节点
- 深度优先遍历(Depth First Search, DFS)
- 广度优先遍历(Breath First Search, BFS)
基本操作python实现
#创建
Class TreeNode():
def __init__(self,val):
self.val=val
self.left=None
self.right=None
#遍历见题目
题目
熟悉数据结构
144. 二叉树的前序遍历
94. 二叉树的中序遍历
145. 二叉树的后序遍历
熟悉数据结构+算法
这里例举一般遇到这种数据结构的题都有哪些解法,建议先看算法解题套路相关文章
(待补充)