本文共 967 字,大约阅读时间需要 3 分钟。
思路:逐层把TreeNode添加到list中然后逐层读取其val。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List
> levelOrder(TreeNode root) { List
> answerList = new ArrayList
>(); List
> list = new ArrayList
>(); if (root == null) { return list; } List initList = new ArrayList (); initList.add(root); answerList.add(initList); for (int i = 0; i < answerList.size(); i++) { List l = new ArrayList (); List newList = new ArrayList (); for (int j = 0; j < answerList.get(i).size(); j++) { TreeNode tree = answerList.get(i).get(j); l.add(answerList.get(i).get(j).val); if (tree.left != null) { newList.add(tree.left); } if (tree.right != null) { newList.add(tree.right); } } list.add(l); if (newList.size() != 0) { answerList.add(newList); } } return list; }}
耗时:328ms,中游