In-order traversal of binary tree

by Alex Myronov

JavaScript

function Node(data) {
  this.data = data
  this.left = null
  this.right = null
}

const inOrder = (tree) => {
  let curr = tree
  const stack = []

  while (curr || stack.length) {
    while (curr) {
      stack.push(curr)
      curr = curr.left
    }

    curr = stack.pop()
    console.log(curr.data)
    curr = curr.right
  }
}

const tree = new Node(1)
tree.left = new Node(2)
tree.left.left = new Node(4)
tree.left.right = new Node(5)

tree.right = new Node(3)
tree.right.left = new Node(6)
tree.right.right = new Node(7)

inOrder(tree)