Как получить все листья данного узла? (дерево имеет только id_parent)

У меня есть структура ArrayList<Foo> в Java со стандартными древовидными полями: id, id_parent, value

Я хочу получить список всех листьев (id_element) данного узла.

Мои примерные данные:

Foo ArrayList<E>
    elementData Object[10]
        [0] Foo
            id          1333393146
            id_element  1333398441937
            id_parent   1333393120
            value       "1.1."
        [1] Foo
            id          1333393120
            id_element  0
            id_parent   0
            value       "1."
        [2] Foo
            id          1333400050
            id_element  0
            id_parent   0
            value       "2."
        [3] Foo
            id          1333400480
            id_element  0
            id_parent   1333400050
            value       "2.1."
        [4] Foo
            id          1333400596
            id_element  1335957085269
            id_parent   1333400480
            value       "2.1.1."
        [5] Foo
            id          1333401059
            id_element  1335957088564
            id_parent   1333400480
            value       "2.1.2."
        [6] Foo
            id          1333401973
            id_element  1335957090492
            id_parent   1333400480
            value       "2.1.3."
        [7] Foo
            id          1333401974
            id_element  1335957093220
            id_parent   1333400050
            value       "2.2."
        [8] Foo
            id          1333392031
            id_element  0
            id_parent   0
            value       "3."
        [9] Foo
            id          1333394672
            id_element  1335957098326
            id_parent   1333392031
            value       "3.1."

Мне нужно сделать функцию public ArrayList<Long> GetIds(ArrayList<Foo> tree, Long id_node) { }, где tree — моя структура, а id_node — идентификатор узла.

Мне нужны только родительские узлы, а не дочерние узлы.

e.g.:


ввод: [над структурой], id = 1333400050

вывод: 1335957085269, 1335957088564, 1335957090492, 1335957093220


Я не знаю, почему у меня есть затемнение по этому поводу..


person radzi0_0    schedule 02.05.2012    source источник