检查具有高于root的值的二叉树节点的数量

时间:2012-01-28 23:57:04

标签: java search binary-tree

您好我有以下问题。给定一棵树我希望能够检查其节点的数量,这些节点的值高于它们的根和节点之上的节点。即,如果一个节点的值为11,只要它高于(或等于)root和它上面的所有节点(因此所有直到root的值必须小于或等于11),它才会增加计数器。如何最好地实现这一目标?

谢谢

1 个答案:

答案 0 :(得分:1)

执行breadth first树遍历。在每个级别的末尾,在哈希表中添加节点值(仅适用于该级别),用于进行计数器比较。

                 2
            /        \
           1            3
         /    \       /    \
      11       12    4      5

播出:

hashTable = {}

  1. 访问Lvl上的所有节点。 1
  2. val = 2.大于root和all(hashTable)?是。增量计数器。将所有内容添加到hashTable。转到下一个lvl。
  3. hashTable = {2}

    1. val = 1.大于root和all(hashTable)?没有。访问邻居
    2. val = 3.大于root和all(hashTable)?是。增量计数器。将所有内容添加到hashTable。转到下一个lvl。
    3. hashTable = {2,1,3}

      。 。

      count = 6个节点大于或等于它们上面的所有节点。