以下是Hackerrank的问题:
给定一个指向二叉树根的指针,需要打印该树的级别顺序遍历.在级别顺序遍历中,从左到右逐级访问 node .完成该函数,并在一行中用空格分隔打印值.
我已经定义了函数levelOrder().然而,我不知道该怎么做.还有为什么这里没有给出 node 类.当我判断Java等其他语言的这个问题时,我看到 node 类被声明了.他们怎么能指望我把字符串当作 node 来处理呢.我很困惑.
以下是hackerrank编辑器中的完整代码,包括它们的设置:
'use strict';
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString: string = '';
let inputLines: string[] = [];
let currentLine: number = 0;
process.stdin.on('data', function(inputStdin: string): void {
inputString += inputStdin;
});
process.stdin.on('end', function(): void {
inputLines = inputString.split('\n');
inputString = '';
main();
});
function readLine(): string {
return inputLines[currentLine++];
}
function main() {
// Enter your code here
function levelOrder(root: any): string {
const queue = [root];
let visited = "";
let currentNode = root;
while (queue.length > 0) {
currentNode = queue.shift();
visited += `${currentNode.val} `;
if (currentNode.left) queue.push(currentNode.left);
if (currentNode.right) queue.push(currentNode.right);
}
return visited;
}
// How I am going to invoke my function and stdout return val here?
}