I have a ordered binary tree:
4
|
|-------|
2 5
|
|-------|
1 3
Листья указывают на ноль.Я должен создать список двойных ссылок, который должен выглядеть следующим образом:
1<->2<->3<->4<->5
(Очевидно, 5 должно указывать на 1)
Класс узла выглядит следующим образом:
class Node {
Node left;
Node right;
int value;
public Node(int value)
{
this.value = value;
left = null;
right = null;
}
}
Как видите, список двойных ссылок также упорядочен (отсортирован).
Вопрос: Мне нужно создать связанный список из дерева без использования дополнительных указателей.Указатель left
дерева должен быть указателем previous
списка, а указатель right
дерева должен быть указателем next
списка.
То, что я думалoff: Поскольку дерево является упорядоченным деревом, обход по порядку выдаст мне отсортированный список.Но пока я делаю обход по порядку, я не могу увидеть, где и как перемещать указатели для формирования двусвязного списка.
PS Я проверил некоторые варианты этого вопроса, но ни один изони дали мне какие-либо подсказки.