Как удалить определенный листовой узел со значением индекса X и отобразить оставшиеся листовые узлы? - PullRequest
0 голосов
/ 27 апреля 2018

Контрольный пример:

Введите:

5
-1 0 0 1 1
2

https://i.stack.imgur.com/PJvCB.png

Выход:

2

Пояснение:

Дерево, соответствующее числовому вводу, показано выше. Первоначально есть 3 листа, 2, 3 и 4 (отмечены зеленым цветом). Если мы удалим узел 2, то останется два листа, то есть 3 и 4. Следовательно, ответ будет 2.

https://i.stack.imgur.com/PJvCB.png

Еще один контрольный пример:

Введите:

5
-1 0 0 1 1
1

Выход:

1

Пояснение:

После удаления узла 1 единственным оставшимся листом является 2.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы создаете древовидную структуру из вашего ввода. Каждый узел имеет следующие значения: node = { value, leftChild, rightChild }

function trace(node, deletedValue) {
  if (!node){
     return; // nothing to see there
  }

  if (node.value === deletedValue) {
     return; // this one is deleted, do not continue
  }

  if (!node.leftChild && !node.rightChild){
     console.log(node.value); //found not deleted leaf
     return;
  }

  trace(node.leftChild);
  trace(node.rightChild);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...