女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

女孩让每个任务最多分出左、右两个子任务。这棵树为什么叫二叉树?

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 根节点一个起点
  2. 左孩子可以有,也可以没有
  3. 右孩子可以有,也可以没有

二叉树中每个节点最多有两个孩子,并区分左和右。

“最多两个”允许 0 个或 1 个,不要求每个节点都分叉两次。

01什么叫二叉树?

二叉树(Binary Tree)是一种树,其中每个节点最多有两个子节点。

A
BC

02两个孩子叫什么?

左孩子

left child

右孩子

right child

即使节点只有一个孩子,也要区分它是左孩子还是右孩子。

03“二叉”是不是每个节点都有两个孩子?

不是。

0 个孩子

可以,是叶节点。

1 个孩子

可以。

2 个孩子

也可以。

只是不能超过两个。

04二叉树和二叉搜索树一样吗?

不一样。

二叉搜索树(BST)是在二叉树基础上又增加了键值顺序规则的一类特殊树。

05为什么二叉树很适合递归?

一个二叉树节点下面,又是两个更小的二叉树:

当前节点 + 左子树 + 右子树

这与前面学习的“把问题拆成更小同类问题”完全对应。

06二叉树怎样遍历?

常见遍历方式包括:

前序

根 → 左 → 右

中序

左 → 根 → 右

后序

左 → 右 → 根

还有按层访问的层序遍历,通常使用队列。

你已经知道了什么

  • 二叉树中每个节点最多有两个孩子。
  • 孩子分为左孩子和右孩子。
  • 节点不必刚好有两个孩子。
  • 二叉树和二叉搜索树不是同一个概念。
  • 二叉树天然具有递归结构。

下一篇:什么是图?

轮到你来试一试

一棵只有一个节点的树可以是二叉树吗?

想好了吗?点开看解释

可以。它有 0 个孩子,没有超过 2,也不违反左、右位置规则。