Я пытаюсь решить некоторые вопросы алгоритма и не знаком с тем, как построить 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.
Как я могу изменить определение класса, чтобы построить указанное выше дерево, чтобы в конечном итоге я мог попробовать пройти через них, чтобы найти максимальную глубину?