学习目标:
二叉树
学习内容:
- 二叉树定义
- 迭代
学习产出:
- 二叉树定义
(1) 满二叉树
(2) 完全二叉树:最后一层节点按顺序 (堆)
(3)二叉搜索树:左子树小于中间节点小于右子树,左子树也满足该条件 (对节点无要求)
(4)平衡二叉搜索树:左子树和右子树高度绝对值的差小于一,左子树也要满足该要求 - 存储方式
(1)线性存储
2i+1,2i+2
(2) 链式存储 - 遍历
(1)深度优先搜索(递归,迭代)
前序: 中 左 右
中序: 左 中 右
后序: 左 右 中
(2)广度优先搜索(层=迭代)
不同的次序只是改变顺序
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
def inorder(root: TreeNode):
if not root:
return
inorder(root.left)
res.append(root.val)
inorder(root.right)
res = list()
inorder(root)
return res