class TreeNode {constructor(val) {
this.val = val;
this.left = null;
this.right = null;
}
}
function arrayToTree(arr) {function toNode(item) {// 转换数组项至节点
if (item === null || item === undefined) {return null}
else {return new TreeNode(item) }
}
let queue = [];
const tree = toNode(arr.shift());
queue.push(tree);// 入队列第一个元素
while (arr.length > 0) {
// 当数组里还有项的时候就拿数组的项去填充队列
let current = queue.shift();
current.left = toNode(arr.shift());
current.right = toNode(arr.shift());
if (current.left) {queue.push(current.left) }
if (current.right) {queue.push(current.right) }
}
return tree;
}
// var arr = [3, 9, 20, null, null, 15, 7]
// var arr = [5, 4, 8, 11, null, 13, 4, 7, 2, null, null, null, 1];
// var arr = [3, 1, 4, null, 2]
var arr = [5, 3, 6, 2, 4, null, null, 1]
var data = new arrayToTree(arr)
console.log('data', data);