1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public
class
Tree {
TreeNode last;
TreeNode nlast;
public
void
printTree(TreeNode root) {
Queue<TreeNode> queue =
new
LinkedList<>();
queue.add(root);
last = root;
nlast = root;
while
(!queue.isEmpty()) {
TreeNode t = queue.peek();
System.out.print(queue.poll().data +
" "
);
if
(t.left !=
null
) {
queue.add(t.left);
nlast = t.left;
}
if
(t.right !=
null
) {
queue.add(t.right);
nlast = t.right;
}
// 如果当前输出结点是最右结点,那么换行
if
(last == t) {
System.out.println();
last = nlast;
}
}
}
|
差不多就是用俩指针,一个指向最后节点,另一个一次指向,当便利到的节点等于每行最后一个节点时就换行。。。。。。。。。
本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1976534