一、二叉树是什么?
二叉树就是一种像树一样的结构,每个节点最多只有两个“孩子”,分别叫左孩子和右孩子,顺序不能乱。
可以理解成:
• 最上面的叫根节点(树根)
• 下面分出来的叫子节点
• 没有孩子的叫叶子节点(树叶)
二、二叉树长什么样?
举个最简单的例子:
1
/
2 3
/
4 5
• 1 是根
• 2 是 1 的左孩子,3 是 1 的右孩子
• 4、5 是叶子
三、二叉树怎么遍历?
遍历就是“把所有节点走一遍”,主要有两种方式:
- BFS(广度优先)
一层一层走,从上到下、从左到右。 上面的树遍历结果:1 2 3 4 5
- DFS(深度优先)
一条路走到底再回头,有三种:
• 前序:根 → 左 → 右 → 1 2 4 5 3
• 中序:左 → 根 → 右 → 4 2 5 1 3
• 后序:左 → 右 → 根 → 4 5 2 3 1
四、Python 怎么实现?(超简单) class TreeNode: def init(self, val=0): self.val = val self.left = None self.right = None
建上面那棵树
root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(3) root.left.left = TreeNode(4) root.left.right = TreeNode(5) 五、和线性表的区别(一句话)
• 线性表:像排队,一条直线
• 二叉树:像分叉的路,有层级、有分支
六、总结?
-
二叉树每个节点最多两个孩子,左右不能乱
-
会用 Python 建二叉树
-
会 BFS、DFS 遍历
-
知道线性表和二叉树的不同