请帮忙写一段二叉树结构的代码
class TreeNode {
constructor(val) {
this.val = val;
this.left = null;
this.right = null;
}
}
class BinaryTree {
constructor() {
this.root = null; //根节点开始为空 }
insertNode(node, newNode) { //插入节点函数,可以递归实现插入新的子节点 if (newNode.val < node.val) { //判断插入的值是否小于当前树的值 if (node.left === null) { node.left = newNode; } else { this.insertNode(node.left, newNode); } } else { if (node.right === null) { node.right = newNode; } else{ this.insertNode(node.right, newNode); } }}
inOrderTraverse(callback){ //中序遍历函数,也可以通过递归实现 function traverse(node){ if (node !== null){ traverse(node.left); callback(node); traverse(node, right); }} traverse(this..root)}
preOrderTraverse(){ //前序遍历函数,也可以使用递归实现 function traversePreOrder(){ if (this..root !==null){ callback(); traversePreOrder(); }} traversePreOrder()}
postOrderTraverse(){//后序遍历函数,也可以使用递归实现 function postOrderTraverse(){ if (this..root !==null){ postOrderTraverse(); callback(); }} postOrderTraverse()}
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。