levelOrderTraversal<T> function
Implementation
List<List<T>> levelOrderTraversal<T>(BinaryTreeNode<T>? root) {
final List<List<T>> result = [];
if (root == null) return result;
final List<BinaryTreeNode<T>> queue = [root];
while (queue.isNotEmpty) {
final int levelSize = queue.length;
final List<T> currentLevel = [];
for (int i = 0; i < levelSize; i++) {
final BinaryTreeNode<T> node = queue.removeAt(0);
currentLevel.add(node.value);
if (node.left != null) {
queue.add(node.left!);
}
if (node.right != null) {
queue.add(node.right!);
}
}
result.add(currentLevel);
}
return result;
}