思路,就是二叉树的层序遍历,辅助一个队列 public class Solution { public int[] levelOrder(TreeNode root) { // 层序遍历 if (root == null) return new int[0]; LinkedList<TreeNode> queue = new LinkedList<>(); queue.add(root); LinkedList<Integer> res = new LinkedList<>(); while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode tmp = queue.pop(); if (tmp.left != null) queue.add(tmp.left); if (tmp.right != null) queue.add(tmp.right); res.add(tmp.val); } } int[] arr = new int[res.size()]; for (int i = 0; i < res.size(); i++) { arr[i] = res.get(i); } return arr; } }