diff --git a/Trees/BreadthFirstTreeTraversal.js b/Trees/BreadthFirstTreeTraversal.js index e50c97aa6c..0b4520612b 100644 --- a/Trees/BreadthFirstTreeTraversal.js +++ b/Trees/BreadthFirstTreeTraversal.js @@ -19,7 +19,7 @@ class BinaryTree { breadthFirst () { const h = this.getHeight(this.root) - for (let i = 1; i <= h; i++) { + for (let i = 0; i !== h; i++) { this.traverseLevel(this.root, i) } return this.traversal @@ -27,23 +27,23 @@ class BinaryTree { // Computing the height of the tree getHeight (node) { - if (node == null) { + if (node === null) { return 0 - } else { - const lheight = this.getHeight(node.left) - const rheight = this.getHeight(node.right) - return lheight > rheight ? lheight + 1 : rheight + 1 } + const lheight = this.getHeight(node.left) + const rheight = this.getHeight(node.right) + return lheight > rheight ? lheight + 1 : rheight + 1 } - traverseLevel (node, level) { - if (level === 1 && node !== null) { + traverseLevel (node, levelRemaining) { + if (node === null) { + return + } + if (levelRemaining === 0) { this.traversal.push(node.data) } else { - if (node !== null) { - this.traverseLevel(node.left, level - 1) - this.traverseLevel(node.right, level - 1) - } + this.traverseLevel(node.left, levelRemaining - 1) + this.traverseLevel(node.right, levelRemaining - 1) } } }