Data Structures: Check if Tree is Binary Search Tree
This commit is contained in:
		
							parent
							
								
									7e2b75ac96
								
							
						
					
					
						commit
						487a710719
					
				
							
								
								
									
										31
									
								
								Data Structures/isBST.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								Data Structures/isBST.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
// https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/check-if-tree-is-binary-search-tree
 | 
			
		||||
 | 
			
		||||
var displayTree = (tree) => console.log(JSON.stringify(tree, null, 2));
 | 
			
		||||
function Node(value) {
 | 
			
		||||
  this.value = value;
 | 
			
		||||
  this.left = null;
 | 
			
		||||
  this.right = null;
 | 
			
		||||
}
 | 
			
		||||
function BinarySearchTree() {
 | 
			
		||||
  this.root = null;
 | 
			
		||||
}
 | 
			
		||||
function isBinarySearchTree(tree) {
 | 
			
		||||
  // Only change code below this line
 | 
			
		||||
  if (tree.root === null) return true;
 | 
			
		||||
  const stack = [tree.root];
 | 
			
		||||
  while (stack.length) {
 | 
			
		||||
    const node = stack.pop();
 | 
			
		||||
    const leftChild = node.left;
 | 
			
		||||
    if (leftChild !== null) {
 | 
			
		||||
      stack.push(leftChild);
 | 
			
		||||
      if (node.value <= leftChild.value) return false;
 | 
			
		||||
    }
 | 
			
		||||
    const rightChild = node.right;
 | 
			
		||||
    if (rightChild !== null) {
 | 
			
		||||
      stack.push(rightChild);
 | 
			
		||||
      if (node.value > rightChild.value) return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
  // Only change code above this line
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user