1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| class Solution { LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); List<ListNode> list = new ArrayList<>(); public ListNode[] listOfDepth(TreeNode tree) { if (tree == null) { return null; }
queue.offer(tree); while (!queue.isEmpty()) { ListNode root = null; ListNode pre = null; int n = queue.size(); for (int i = 0; i < n; i++) { TreeNode node = queue.poll(); ListNode listNode = new ListNode(); listNode.val = node.val; if (root == null) { root = listNode; pre = root; }else { pre.next = listNode; pre = listNode; }
if (node.left != null) { queue.offer(node.left); } if (node.right != null){ queue.offer(node.right); } }
list.add(root); }
ListNode[] ans = new ListNode[list.size()]; for (int i = 0; i < list.size(); i++) { ans[i] = list.get(i); } return ans; } }
|