代码之家  ›  专栏  ›  技术社区  ›  Rohit Pandey

独特的二进制搜索树,leetcode术语

  •  0
  • Rohit Pandey  · 技术社区  · 3 年前

    我在看leetcode问题,它要求枚举所有唯一的二进制搜索树( https://leetcode.com/problems/unique-binary-search-trees-ii/ ). 它们将每棵树编码为一个数组。但是,我不知道如何从树到数组。对于n=3,我们得到树:

    enter image description here

    以及相应的数组:

    [[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]
    

    完全不知道如何将树映射到相应的数组。例如,在第一棵树中,它们从1开始。但是,他们一直到叶子,最后到达3。

    1 回复  |  直到 3 年前
        1
  •  1
  •   Temanyl    3 年前

    我猜数组的顺序和树的顺序是不同的。

    将树从0到4从左到右编号,数组表示的树应为: [1, 0, 2, 4, 3]

    我不完全确定对于深度更大的树是如何做到这一点的,但我想这可能是明确的,因为它是一个搜索树。 因此,在一个节点值之后是左、右子节点的值,如果没有,则为null。省略所有尾随的空值。 这有道理吗?