二叉树遍历水平

时间:2015-12-03 16:13:11

标签: java tree binary-search-tree traversal

是否有任何一种遍历树的方法,这样我就可以打印出每个节点级别的二叉树?所以我想说我有这棵树:

   10
   /\
  5  15
 /    /\
2    12 16

输出(例如预购)将是:

节点(级别)

10(0),5(1),2(2),15(1),12(2),16(2)

最理想的方式是使用二进制方式:

10([]),5([1]),2([11]),15([0]),12([01]),16([00])

1 个答案:

答案 0 :(得分:3)

是的,这绝对是可能的。看起来你想要深入遍历树的第一顺序,这使得事情变得简单明了。

该算法看起来像这样(在伪代码中,因为没有提供参考的代码):

void traverse(node, depth) {
  print(node.value, depth);
  depth++;
  traverse(node.leftChild, depth);
  traverse(node.rightChild, depth);
  depth--;
}

所以你只需要调用该方法传递树的根节点和初始深度(0)。