【发布时间】:2020-10-28 06:57:24
【问题描述】:
这是一个 leetcode 问题。
给定一棵二叉树,返回其节点值的层序遍历。 (即从左到右,逐级)。
例如: 给定二叉树
[3, 9, 20, null, null, 15, 7],3 / \ 9 20 / \ 15 7将其级别顺序遍历返回为:
[ [3], [9,20], [15,7] ]
但我正在尝试一种新的 JavaScript 方式,而不是完全按照他们的解决方案。到目前为止,我能够打印数组,但是
如何在新行中打印不同的级别
以下是我目前的代码:
var levelOrder = function(root) {
let output = [];
let queue = [];
let currentNode = root;
queue.push(currentNode);
let currentLevel = 1;
while(queue.length){
currentNode = queue.shift();
currentLevel--; //this will ensure we are adding new lines only on next level
output.push(currentNode);
if(currentNode.left){
queue.push(currentNode.left);
}
if(currentNode.right){
queue.push(currentNode.right);
}
if(currentLevel = 0){
output = output + '/n'; //Insert a new line
currentLevel = queue.length; //2
}
}
return output;
};
输入:[3,9,20,null,null,15,7],
Expected Output:
[
[3],
[9,20],
[15,7]
]
LeetCode 问题链接: BinaryTreeTraversalUsingBFS
【问题讨论】:
-
您正在寻找的策略是 BFS,请参考这些链接 - npmjs.com/package/@dsinjs/binary-tree 和 dsinjs.github.io/binary-tree/#findbfs
标签: javascript multidimensional-array binary-tree breadth-first-search