如何计算预序树数组中节点的深度?

时间:2015-04-11 11:28:39

标签: algorithm tree traversal

例如,树

             2
           /   \
          1     3
         / \   / \
       null n n   null

按预先存储为数组:[2,1,null,null,3,null,null]。你如何计算节点的深度?或者如何将预订转换为深度优先?

1 个答案:

答案 0 :(得分:1)

只考虑预订遍历,这是不可能的。举个例子:

  

[2,1,null,null,3,null,null]

有几种可能的解决方案来重建树。这是两个:

         2
       /   \
      1     3
     / \   / \
   null n n   null

         2
       /   \
      1     3
     /     / \
   null   n   null
   /
 null

要重建树,您还需要下订单。然后,您可以按照解决方案的下一个链接:http://www.geeksforgeeks.org/full-and-complete-binary-tree-from-given-preorder-and-postorder-traversals/