public List<ListNode> binaryTreeToLists(TreeNode root) {
        // Write your code here
        List<ListNode> res = new ArrayList<>();
        if (root == null) return res;
        Queue<TreeNode> q = new LinkedList<>();
        q.add(root);

        while (!q.isEmpty()) {
            int size = q.size();
            ListNode head = null;
            ListNode curr = null;

            for (int i = 0; i < size; i++) {
                TreeNode tmp = q.poll();
                ListNode lvlNode = new ListNode(tmp.val);

                if(head == null){
                    head = lvlNode;
                    curr = lvlNode;
                }else{
                    curr.next = lvlNode;
                    curr = curr.next;
                }

                if (tmp.left != null)  q.add(tmp.left);
                if (tmp.right != null) q.add(tmp.right);
            }

          res.add(head);
        }
        return res;
    }

results matching ""

    No results matching ""