|
|
1
2
下面是对算法稍加修改的版本的实现。 不同之处在于,我们并不是一个级别接着一个级别进行清除,而是一次完成所有操作。这使用了这样一个事实,即孩子总是在他们父母的右边,因此,如果我们只需浏览一次列表,并标记要删除的所有内容,我们就不会遗漏任何内容。
这会使树处于非规范状态,因为被删除的节点仍然存在,它们只是被标记为要删除(通过将其父节点设置为
因此,我还添加了一个选项压缩步骤,删除这些节点并对其余节点重新编号,以便将其余节点编号为0、1、2、。。。没有间隙。
演示:
|
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 8 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 9 月前 |
|
|
Geremia · 2D NumPy数组+1D数组? 9 月前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 10 月前 |
|
|
Paul Williams · 迭代数组时输出有问题 10 月前 |