背景
未标记的树可能如下所示:
   o
 / | \
o  o  o
|    / \
o   o   o
为了线性化这棵树,我们首先用每个o子节点的数量标记每个节点:
   3
 / | \
1  0  2
|    / \
0   0   0
然后将数字以呼吸优先的方式写在列表中,即逐行从左到右:
[3, 1, 0, 2, 0, 0, 0]
这是上面树的唯一且明确的表示,这意味着没有两个不同的纯树将具有相同的线性化,并且我们可以从列表中重建原始树。
尽管每棵树都对应于一个特定的整数列表,但并非每个整数列表都代表一个有效的线性化树:例如,[2, 0, 0, 0]它并不代表一个有效的树,如果我们尝试对其进行去线性化,则最终得到该树
[2,0,0,0] -> 2 [0,0,0] -> 2 [0,0] -> 2 [0]
            / \          / \        / \
                        0          0   0
但仍然0在列表中左侧,无处可放。类似地,[2, 0]这也不是有效的树线性化,因为去线性化的树有一个空的子点:
  2
 / \
0
任务
给定一个整数列表,请确定它是否是使用尽可能少的字节进行的树的有效线性化。您可以编写完整的程序或函数。
输入: 非负整数的非空列表。
输出: 如果列表是树的线性化,则为真实值,否则为伪造值。
测试用例
特鲁西[0]
[2, 0, 0]
[1, 1, 1, 1, 1, 0]
[3, 1, 0, 2, 0, 0, 0]
[2, 0, 2, 2, 0, 0, 2, 0, 0]
[3, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0]
[1, 5, 3, 0, 2, 1, 4, 0, 1, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0]
虚假
[0, 1]
[2, 0]
[2, 0, 0, 0]
[1, 0, 1]
[3, 2, 1, 0]
[2, 0, 0, 2, 0, 0]
[4, 1, 0, 3, 0, 0, 0, 0]
[4, 2, 0, 3, 1, 0, 0, 0, 0, 0]
          
{X0@{+\(_{\}&}/|!}我认为?