File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments