题目:
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree{3,9,20,#,#,15,7}
, 3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
思路:
递归
package treetraversal;import java.util.ArrayList;import java.util.List;public class BinaryTreeLevelOrderTraversal { public List
> levelOrder(TreeNode root) { List
> res = new ArrayList
>(); //List record = new ArrayList (); levelOrderTraversal(res, root, 0); return res; } private void levelOrderTraversal(List
> res, TreeNode root, int k) { if (root == null) return; if (res.size() < k + 1) { List record = new ArrayList (); record.add(root.val); res.add(record); } else { res.get(k).add(root.val); } levelOrderTraversal(res, root.left, k + 1); levelOrderTraversal(res, root.right, k + 1); }}