
一起动脑筋 · 先看一个小故事
女孩让每个任务最多分出左、右两个子任务。这棵树为什么叫二叉树?
把过程摊开来看
- 根节点一个起点
- 左孩子可以有,也可以没有
- 右孩子可以有,也可以没有
二叉树中每个节点最多有两个孩子,并区分左和右。
“最多两个”允许 0 个或 1 个,不要求每个节点都分叉两次。
01什么叫二叉树?
二叉树(Binary Tree)是一种树,其中每个节点最多有两个子节点。
A
BC
02两个孩子叫什么?
左孩子
left child
右孩子
right child
即使节点只有一个孩子,也要区分它是左孩子还是右孩子。
03“二叉”是不是每个节点都有两个孩子?
不是。
0 个孩子
可以,是叶节点。
1 个孩子
可以。
2 个孩子
也可以。
只是不能超过两个。
04二叉树和二叉搜索树一样吗?
不一样。
二叉搜索树(BST)是在二叉树基础上又增加了键值顺序规则的一类特殊树。
05为什么二叉树很适合递归?
一个二叉树节点下面,又是两个更小的二叉树:
当前节点 + 左子树 + 右子树
这与前面学习的“把问题拆成更小同类问题”完全对应。
06二叉树怎样遍历?
常见遍历方式包括:
前序
根 → 左 → 右
中序
左 → 根 → 右
后序
左 → 右 → 根
还有按层访问的层序遍历,通常使用队列。
你已经知道了什么
- 二叉树中每个节点最多有两个孩子。
- 孩子分为左孩子和右孩子。
- 节点不必刚好有两个孩子。
- 二叉树和二叉搜索树不是同一个概念。
- 二叉树天然具有递归结构。
下一篇:什么是图?
轮到你来试一试
一棵只有一个节点的树可以是二叉树吗?
想好了吗?点开看解释
可以。它有 0 个孩子,没有超过 2,也不违反左、右位置规则。