初级算法-树

算法
2024年02月09日

二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)

function breadthFirstTraversal(root) {
 if (!root) return;
 const queue = [[root, 0]]; // 初始化队列,将根节点放入队列
 const result = [];
 while (queue.length> 0) {
 let [currentNode, level] = queue.shift(); // 从队列中取出当前节点
 result[level] ? result[level].push(currentNode.value) : result[level] = [currentNode.value];
 // 将当前节点的左子节点和右子节点放入队列
 ++level
 if (currentNode.left) {
 queue.push([currentNode.left, level]);
 }
 if (currentNode.right) {
 queue.push([currentNode.right, level]);
 }
 }
 return result;
}
Edit this page on GitHub

AltStyle によって変換されたページ (->オリジナル) /