void bfs(TreeNode root) {
ArrayDeque<TreeNode> queue = new ArrayDeque<>();
if (root != null) queue.add(root);
while (!queue.isEmpty()) {
TreeNode node = queue.remove();
visit(node);
if (node.left != null) queue.add(node.left);
if (node.right != null) queue.add(node.right);
}
}
def bfs(root) -> None:
queue = deque([root] if root else [])
while queue:
node = queue.popleft()
visit(node)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
def bfs(root: TreeNode): Unit =
val queue = scala.collection.mutable.Queue[TreeNode]()
if root != null then queue.enqueue(root)
while queue.nonEmpty do
val node = queue.dequeue()
visit(node)
if node.left != null then queue.enqueue(node.left)
if node.right != null then queue.enqueue(node.right)
void bfs(TreeNode* root) {
std::queue<TreeNode*> queue;
if (root != nullptr) queue.push(root);
while (!queue.empty()) {
TreeNode* node = queue.front();
queue.pop();
visit(node);
if (node->left != nullptr) queue.push(node->left);
if (node->right != nullptr) queue.push(node->right);
}
}