【问题标题】:Is there an specific algorithm or way to solve this special tree problem? [duplicate]有没有特定的算法或方法来解决这个特殊的树问题? [复制]
【发布时间】:2020-10-31 13:13:23
【问题描述】:

例如,我在这棵二叉树中标记了节点 A。节点 A 旁边的节点也将同时被标记。我想输出像 A 这样的最小节点,这样我就可以标记二叉树的所有节点。 这类问题有什么特定的算法吗?或者有什么想法可以解决这个问题?

我标记A时的场景:

标记 A&B 时,所有节点都会被标记:

这个例子的输出应该是2。

【问题讨论】:

标签: algorithm methods tree binary-tree traversal


【解决方案1】:

如果树不是太大,最简单的方法似乎是从根开始,递归地应用它。与其考虑“标记”,不如将其更多地视为“删除”,同时保持计数。删除root的方法最多有3种,你试试看吧:

  • 移除根及其左右节点,计算剩余树的标记总和,称这个数为a
  • 如果存在,则删除根及其相邻节点下方的节点,计算剩余树的标记总和,将此数字称为 b
  • 如果存在,删除根及其邻居正下方的节点,计算剩余树的标记总和,将此数字称为 b
  • 最小标记数为minmum(a, b, c) + 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多