Как рассчитать расстояние от цели до каждого узла в бинарном дереве поиска с помощью Javascript? - PullRequest
0 голосов
/ 07 сентября 2018

Я только начал изучать бинарные деревья поиска и тому подобное, и я пытаюсь найти расстояние от цели до каждого узла в бинарном дереве поиска.Это действительно сложно и очень трудно найти примеры с javascript, когда дело доходит до структур данных.Был бы супер благодарен за любую помощь!

        7
      /   \
     4     8
    / \   / \
   3   6 
  /
 2

for the traget of 6, my output should be {7: 2, 4:1, 3:2, 2:3, 8:3, 6:0}

Что у меня так далеко:

class Node {
  constructor(data) {
    this.data = data;
    this.left = null;
    this.right = null;
  }
}

const calculate = (node, target) => {
  let counter = 0;
  const nodesAndThereDistances = {}

  if (!node) {
    return null;
  }
  const inner = (node, target) => {
    if (!node) {
      return null;
    }

    if (node.data !== target) {
      counter++;
      nodesAndThereDistances[node.data] = counter;
      if (node.left, target) {
        inner(node.left, target)
      }
      if (node.right, target) {
        inner(node.right, target)
      }
    } else {
      return nodesAndThereDistances;
    }
  }
  inner(node, target)
  return nodesAndThereDistances;
}

calculate(node1, 6)
...