是否有任何一种遍历树的方法,这样我就可以打印出每个节点级别的二叉树?所以我想说我有这棵树:
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])
答案 0 :(得分:3)
是的,这绝对是可能的。看起来你想要深入遍历树的第一顺序,这使得事情变得简单明了。
该算法看起来像这样(在伪代码中,因为没有提供参考的代码):
void traverse(node, depth) {
print(node.value, depth);
depth++;
traverse(node.leftChild, depth);
traverse(node.rightChild, depth);
depth--;
}
所以你只需要调用该方法传递树的根节点和初始深度(0)。