我在这里使用递归的方式
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public static List<List<Integer>> result=new ArrayList<>();
//定义了一个全局变量用于传参
public static List<List<Integer>> levelOrder(TreeNode root) {
selfTree(root,0);
List<List<Integer>> resulta=result;
//初始化全局参数
result=new ArrayList<>();
return resulta;
}
//递归的实现
public static void selfTree(TreeNode root,int deep){
if(root==null)return;
deep++;
if(result.size()<deep){
List<Integer> cur=new ArrayList<>();
result.add(cur);
}
result.get(deep-1).add(root.val);
selfTree(root.left,deep);
selfTree(root.right,deep);
}
}