代码之家  ›  专栏  ›  技术社区  ›  user2467011

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

  •  1
  • user2467011  · 技术社区  · 6 年前

    我已经开始阅读有关树结构的内容,首先是二叉树。

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

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

    enter image description here

    对于列表表示的列表,它如下所示:

    enter image description here

    我的问题是 :如果二叉树图像上没有显示空节点,为什么需要用箭头标记的空节点?正如我们所知,二叉树可以 高达 两个节点,那么,为什么我们需要这个空节点呢?这个空节点如何帮助我们?或者这只是我们应该使用的惯例?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Dric512    6 年前

    这主要在链接中解释,特别是构造函数:

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

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

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

    这样做的好处是,在解析树时,不必检查 left right 存在,就像它们总是存在一样。这使得代码更加规则和简单。