一、题目内容
二、题解
解法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); while (!queue.isEmpty()) { List<Integer> temp = new ArrayList<Integer>(); int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode head = queue.poll(); temp.add(head.val); if (head.left != null) { queue.offer(head.left); } if (head.right != null) { queue.offer(head.right); } } result.add(temp); } return result; }}