解题思路
BFS构造链表即可
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode[] listOfDepth(TreeNode tree) {
ListNode[] ans;
if (tree == null){
ans = new ListNode[0];
return null;
}
LinkedList<TreeNode> queue = new LinkedList<>();
List<ListNode> listNodeList = new ArrayList<>();
queue.add(tree);
while (!queue.isEmpty()){
int n = queue.size();
ListNode head = new ListNode();
ListNode node = head;
for (int i=0;i<n;i++){
TreeNode first = queue.getFirst();
ListNode tmp = new ListNode(first.val);
node.next = tmp;
node = node.next;
queue.removeFirst();
if (first.left != null){
queue.add(first.left);
}
if (first.right != null){
queue.add(first.right);
}
}
if (head.next != null){
listNodeList.add(head.next);
}
}
ans = new ListNode[listNodeList.size()];
for (int i=0;i<listNodeList.size();i++){
ans[i] = listNodeList.get(i);
}
return ans;
}
}