如何直观的打印一颗二叉树
打印的结果是需要顺时针旋转90
度的,如下面的结果打印出来是这样的。
如何打印呢? 需要处理以下四个问题:
- 遍历树的顺序是 右子树->根->左子树;
- 因为要避免数字长度影响对齐的因素,所以两边补上空格(有一个总长度可以自己确定);
- 在结点的两边加上特定的字符串标记区分孩子和父亲以及位置,使用
H
、^
、v
这个几个标记 - 和高度有关系的
height * len
, 打印相应前面的空格长度;
代码如下
1 | public class PrintBinaryTree { |