tree traversal recursion in javascript
class Node {
constructor(value){
this.left = null;
this.right = null;
this.value = value;
}
}
class BinarySearchTree {
constructor(){
this.root = null;
}
insert(value){
const newNode = new Node(value);
if (this.root === null) {
this.root = newNode;
} else {
let currentNode = this.root;
while(true){
if(value < currentNode.value){
//Left
if(!currentNode.left){
currentNode.left = newNode;
return this;
}
currentNode = currentNode.left;
} else {
//Right
if(!currentNode.right){
currentNode.right = newNode;
return this;
}
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)
JSON.stringify(traverse(tree.root))
// 9
// 4 20
//1 6 15 170
function traverse(node) {
const tree = { value: node.value };
tree.left=node.left
if(node.left===null) {
return null
}else{
traverse(node.left);
}
tree.right=node.right
if(node.right===null) {
return null
}else{
traverse(node.right);
}
}
Also in JavaScript:
- upload multiple image using jquery
- javascript two character integer
- filter out arrays js
- json in listview flutter
- js array delete last
- axios cdn
- angular cdk media query
- how to make ajax request javascript
- scroll to class jquery
- javascript filter
- go back button react native
- open json file r
- mongoose bulk update
- javascript ... operator
- How to fix WordPress jQuery is not defined
- next.js manifest generator
- angularjs form validation on submit
- reactjs facebook login popup trigger on load page
- elasticsearch aggregation unique values
- for Loop continue
- javascript get first 2 char
- notice before reload js
- remove all spaces from a string javascript
- cli run js