my first BST implementation

Run Settings
LanguageJavaScript
Language Version
Run Command
class Node{ constructor(value){ this.value = value; this.left = null; this.right = null; } } class BinarySearchTree { constructor(){ this.root = null; } insert(value){ console.log(value) const node = new Node(value); if(!this.root){ this.root = node; return; } let currentNode = this.root; while(true){ if (currentNode.value >= value){ if(currentNode.left){ currentNode = currentNode.left; }else{ currentNode.left = node; break; } }else{ if(currentNode.right){ currentNode = currentNode.right; }else{ currentNode.right = node; break; } } } return this; } lookup (value){ let currentNode = this.root; while(!!currentNode){ if(value === currentNode.value){ return true } if(value < currentNode){ currentNode = currentNode.left; }else{ currentNode = currentNode.right; } } } } const tree = new BinarySearchTree(); tree.insert(9); tree.insert(4); tree.insert(6); tree.insert(20); tree.insert(170); tree.insert(15); tree.insert(1); // tree.remove(170); console.log(JSON.stringify(traverse(tree.root))); console.log(tree.lookup(20)); function traverse(node) { const tree = { value: node.value }; tree.left = node.left === null ? null : traverse(node.left); tree.right = node.right === null ? null : traverse(node.right); return tree; }
Editor Settings
Theme
Key bindings
Full width
Lines