|
|
1
2
下面是对算法稍加修改的版本的实现。 不同之处在于,我们并不是一个级别接着一个级别进行清除,而是一次完成所有操作。这使用了这样一个事实,即孩子总是在他们父母的右边,因此,如果我们只需浏览一次列表,并标记要删除的所有内容,我们就不会遗漏任何内容。
这会使树处于非规范状态,因为被删除的节点仍然存在,它们只是被标记为要删除(通过将其父节点设置为
因此,我还添加了一个选项压缩步骤,删除这些节点并对其余节点重新编号,以便将其余节点编号为0、1、2、。。。没有间隙。
演示:
|
|
|
Zevvysan · 为什么我的打印函数之一要删除节点? 7 年前 |
|
|
user9573040 · 递归二叉树高度 7 年前 |
|
|
Dipesh Desai · 在二叉树haskell中搜索值 7 年前 |
|
|
ibrahim · “main”已停止工作-C++[开发人员++] 7 年前 |