Как дойти до корня структуры?

Имеется древовидная структуру - граф.

Пользователь находится на опредененном узле внутри графа. Узел не имеет никаких уникальных id или name отличающие его от других.

Как вернуть путь от этого узла до корня дерева?

Структура

[
  {
    "name": "Root 1",
    "children": [
      {
        "name": "X",
        "children": [
          {
            "name": "Y",
            "children": [
              {
                "name": "Z",
                "children": []
              }
            ]
          }
        ]
      }
    ]
  },
  
  {
    "name": "Root 2",
    "children": [
      {
        "name": "X",
        "children": [
          {
            "name": "Y",
            "children": [
              {
                "name": "Z",
                "children": []
              }
            ]
          }
        ]
      }
    ]
  }
]
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 4
@xenonhammer
с помощью рекурсивного вызова функции, которая остановится когда дойдет до нужного вам значениея
Ответ написан
twobomb
@twobomb
Ответ написан
@twolegs
Если у вас есть возможность изменить структуру (хотя бы в локальной переменной), то не пытайтесь придумать какое-то решение, которое будет ломать мозг вам и тем, кто будет поддерживать данный код.
Создайте на основе данных удобную для вас структуру - например вы можете расширить объект полем parent со ссылкой на родителя, и тогда хождение по дереву наверх будет максимально простым.
Есть отличное правило - если алгоритм становится сложным, значит вы выбрали неудачную структуру данных. Если в вашей задаче нет простого решения, то меняйте модель данных, и получите более простое решение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы