从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
提示:
节点总数 <= 1000
题解:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
//递归层次遍历
List<List<Integer>> node = new ArrayList();
public List<List<Integer>> levelOrder(TreeNode root) {
change(root, 0);
return node;
}
private void change(TreeNode root, int k) {
if(root != null) {
if(node.size() <= k) {
node.add(new ArrayList());
}
node.get(k).add(root.val);
change(root.left, k+1);
change(root.right, k+1);
}
}
}