Skip to content

Commit 73aea59

Browse files
committed
剑指Offer,按之字形顺序打印二叉树
1 parent 6089af1 commit 73aea59

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import java.util.ArrayList;
2+
3+
/**
4+
* 剑指Offer,按之字形顺序打印二叉树
5+
*/
6+
7+
public class BinaryTreeZhiPrintSolution{
8+
9+
public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
10+
11+
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
12+
13+
if (pRoot == null) {
14+
return result;
15+
}
16+
17+
int level = 1;
18+
ArrayList<TreeNode> currentLevel = new ArrayList<>();
19+
currentLevel.add(pRoot);
20+
21+
while(currentLevel.size() != 0) {
22+
23+
ArrayList<TreeNode> tmp = new ArrayList<>();
24+
ArrayList<Integer> valList = new ArrayList<>();
25+
26+
if (level % 2 == 1) {
27+
28+
for (TreeNode t : currentLevel) {
29+
if (t.left != null) {
30+
tmp.add(0, t.left);
31+
}
32+
if(t.right != null) {
33+
tmp.add(0, t.right);
34+
}
35+
valList.add(t.val);
36+
}
37+
}else{
38+
for (TreeNode t : currentLevel) {
39+
if (t.right != null) {
40+
tmp.add(0, t.right);
41+
}
42+
if(t.left != null) {
43+
tmp.add(0, t.left);
44+
}
45+
valList.add(t.val);
46+
}
47+
}
48+
level++;
49+
result.add(valList);
50+
currentLevel = tmp;
51+
}
52+
return result;
53+
}
54+
}

0 commit comments

Comments
 (0)