二叉树学习总结

9 阅读1分钟

一、二叉树是什么?

二叉树就是一种像树一样的结构,每个节点最多只有两个“孩子”,分别叫左孩子和右孩子,顺序不能乱。

可以理解成:

• 最上面的叫根节点(树根)

• 下面分出来的叫子节点

• 没有孩子的叫叶子节点(树叶)

二、二叉树长什么样?

举个最简单的例子: 1 /
2 3 /
4 5 • 1 是根

• 2 是 1 的左孩子,3 是 1 的右孩子

• 4、5 是叶子

三、二叉树怎么遍历?

遍历就是“把所有节点走一遍”,主要有两种方式:

  1. BFS(广度优先)

一层一层走,从上到下、从左到右。 上面的树遍历结果:1 2 3 4 5

  1. 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) 五、和线性表的区别(一句话)

• 线性表:像排队,一条直线

• 二叉树:像分叉的路,有层级、有分支

六、总结?

  1. 二叉树每个节点最多两个孩子,左右不能乱

  2. 会用 Python 建二叉树

  3. 会 BFS、DFS 遍历

  4. 知道线性表和二叉树的不同