为什么给定的二叉树用空节点构造?

Why is the given binary tree constructed with empty node?

我已经开始阅读树结构,二叉树排在第一位。

我使用以下资源:https://runestone.academy/runestone/static/pythonds/Trees/ListofListsRepresentation.html

在那里你可以找到二叉树图像:

列表表示的列表如下所示:

我的问题是:如果二叉树图像上没有显示,为什么我们需要箭头标记的空节点?我们知道二叉树最多可以有 个节点,那么,为什么我们需要这个空节点呢?这个空节点对我们有什么帮助?或者这只是我们应该使用的约定?

这个在link中主要有说明,具体跟构造函数有关:

def BinaryTree(r):
  return [r, [], []]

创建新叶子时,它始终包含:

  • 价值本身
  • 左节点
  • 右节点

这样做的好处是当你解析树时,你不必检查 leftright 是否存在,因为它们总是存在的。这使得代码更加规则和简单。