数据结构与算法系列 - 深度优先和广度优先( 三 )

// C/C++void bfs(Node* root) {map visited;if(!root) return ;queue queueNode;queueNode.push(root);while (!queueNode.empty()) {Node* node = queueNode.top();queueNode.pop();if (visited.count(node->val)) continue;visited[node->val] = 1;for (int i = 0; i < node->children.size(); ++i) {queueNode.push(node->children[i]);}}return ;}//JavaScriptconst bfs = (root) => {let result = [], queue = [root]while (queue.length > 0) {let level = [], n = queue.lengthfor (let i = 0; i < n; i++) {let node = queue.pop()level.push(node.val)if (node.left) queue.unshift(node.left)if (node.right) queue.unshift(node.right)}result.push(level)}return result};文章持续更新 , 可以微信搜一搜「 一角钱技术 」第一时间阅读 ,本文 GitHub org_hejianhui/JavaStudy 已经收录 , 欢迎 Star 。