先序就是定义根节点然后添加左子树, 右子树, 规定 -1 的位置都以 ‘#’ 占位符代替
const placeholder = "#";
let index = 0
const treeData = [200, 143, 754, 6, -1, -1, 3, -1, -1,
386, 7, -1, -1, 9, -1, -1, 876, 486,
8, -1, -1, 2, -1, -1, 740, 1, -1, -1,
5, -1, -1]
class TreeNode {
data
left
right
}
function createTree(treeData) {
let tree = treeData[index++]
if (tree == -1) {
return placeholder
} else {
const treeNode = new TreeNode(tree)
treeNode.data = tree
treeNode.left = createTree(treeData)
treeNode.right = createTree(treeData)
return treeNode
}
}
const tree = createTree(treeData)
console.log(tree)
function readTree(tree) {
if (tree === placeholder) {
console.log(-1)
} else {
console.log(tree.data)
readTree(tree.left)
readTree(tree.right)
}
}
readTree(tree)