题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); if(pRoot==null){ return res; } Queue<TreeNode> q = new LinkedList<>(); q.add(pRoot); int j = 1; while(!q.isEmpty()){ ArrayList<Integer> list = new ArrayList<>(); int n = q.size(); for(int i = 0 ; i < n ;i++){ TreeNode node = q.poll(); list.add(node.val); if(node.left!=null){ q.add(node.left); } if(node.right!=null){ q.add(node.right); } } if(j%2==0){ Collections.reverse(list); } j++; res.add(list); } return res; } }