题解 | #求二叉树的层序遍历#
求二叉树的层序遍历
http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
用一个helper方法进行DFS,每进去一层检查有没有这一层,没有就加多一层,然后将存在的点的值加到特定层中。
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型ArrayList<ArrayList<>>
*/
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
// write code here
return levelOrderHelper(root,new ArrayList<ArrayList<Integer>>(),0);
}
public ArrayList<ArrayList<Integer>> levelOrderHelper(TreeNode root,ArrayList<ArrayList<Integer>> arr, int n){
if(root != null){
if(arr.size()<n+1){
arr.add(new ArrayList<Integer>());
}
arr.get(n).add(root.val);
levelOrderHelper(root.left,arr,n+1);
levelOrderHelper(root.right,arr,n+1);
}
return arr;
}
} 
阿里巴巴灵犀互娱公司福利 668人发布