Как построить n-арное дерево в JavaScript - PullRequest
1 голос
/ 07 мая 2020

Я пытаюсь решить некоторые вопросы алгоритма и не знаком с тем, как построить n-арное дерево в JavaScript. Мне дано определение класса Node, как показано ниже:

class Node {
    constructor(val, children) {
        this.val = val;
        this.children = children;
    }
}

Я хочу написать метод add для этого класса; однако я не понимаю, как это сделать. Я знаю, что this.children должен быть массивом. Первое значение каким-то образом должно быть идентифицировано как root, а последующие добавления должны быть дочерними. Или, по крайней мере, это мой лог c, но не знаю, как реализовать. Допустим, я хочу построить n-арное дерево ниже. Как мне это сделать?

             1
          /  |  \
         /   |   \
        3    2    4
      /   \
     5     6

Input: root = [1, null, 3, 2, 4, null, 5, 6].

Этот ввод - это то, что я получаю для дерева выше в соответствии с проблемой, которую я пытаюсь решить.

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value.

Как я могу изменить определение класса, чтобы построить указанное выше дерево, чтобы в конечном итоге я мог попробовать пройти через них, чтобы найти максимальную глубину?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...