一、题目内容
二、题解
解法1:
思路
临时数组使用队列,正序尾插,逆序头插入
代码
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if (root == null) { return new ArrayList<List<Integer>>(); } Queue<TreeNode> queue = new LinkedList<TreeNode>(); List<List<Integer>> result = new ArrayList<List<Integer>>(); queue.offer(root); int level = 0; while (!queue.isEmpty()) { LinkedList<Integer> temp = new LinkedList<Integer>(); int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode head = queue.poll(); if (level % 2 == 0) { temp.add(head.val); } else { temp.addFirst(head.val); } if (head.left != null) { queue.offer(head.left); } if (head.right != null) { queue.offer(head.right); } } result.add(temp); level++; } return result; }}