Java, simple recursion with accumulator, 8 lines, beats 87.5%
 public List<List<Integer>> levelOrder(TreeNode root) {\n        List<List<Integer>> levels = new ArrayList<>();\n        levelOrder(root, 0, levels);\n        
     public List<List<Integer>> levelOrder(TreeNode root) {\n        List<List<Integer>> levels = new ArrayList<>();\n        levelOrder(root, 0, levels);\n        return levels;\n    }\n\n    public void levelOrder(TreeNode node, int level, List<List<Integer>> levels) {\n        if (node == null) return;\n        if (levels.size() == level) levels.add(new ArrayList<>());\n        levels.get(level++).add(node.val);\n        levelOrder(node.left, level, levels);\n        levelOrder(node.right, level, levels);\n    }
['Recursion', 'Java']