【问题标题】:Find how many nodes at a certain height in a left child-right sibling tree?求左子-右兄弟树中某个高度的节点有多少?
【发布时间】:2019-01-31 08:56:11
【问题描述】:

我正在尝试使用树的左子右兄弟表示进行练习,但我真的不知道如何找到给定高度的节点数。

    10 
    | 
    2 -> 3 -> 4 -> 5 
              |    | 
              6    7 -> 8 -> 9  

例如,如果我选择高度 0,那么函数应该返回 1(因为在高度 0 我只有 1 个节点,即根节点,在本例中为 10),如果我选择高度 1,它应该返回 4( 4 个节点),如果我选择高度为 2,那么它也应该返回 4。

【问题讨论】:

  • 这是leetcodehackerrank 任务吗?
  • 可能是,我下周一基本上有算法和数据结构考试,我看到我的老师对这种树很着迷,所以我基本上是尽可能多地练习
  • 这是什么树?我知道10 有四个孩子?而5 也有四个孩子?因为它有点混乱。看起来32 的孩子?
  • 10 有 4 个孩子,4 有 1 个孩子,5 有 3 个孩子。它被称为左子右兄弟树
  • 既然你已经到了需要编写这个函数的地步,我猜你已经有了数据结构的代码,添加节点的代码等等。为了获得更好的帮助,我建议您发布该代码。

标签: c tree


【解决方案1】:

递归:

  • 如果树为空,则为0。
  • 如果H 的高度为0,则为 1 + 兄弟姐妹的数量。
  • 否则,它是子节点中高度为 H-1 的节点和兄弟节点中高度为 H 的节点的总和。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2013-02-13
    • 1970-01-01
    • 2020-08-04
    相关资源
    最近更新 更多