make sure that roots() returns nodes in children insert order which is also consistent with bfs tarversal order.