I have a ordered binary tree:
4
|
|-------|
2 5
|
|-------|
1 3
葉はnullを指します。次のような二重リンクリストを作成する必要があります
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
ます。
私が考えたこと:ツリーは順序付けられたツリーであるため、順序どおりにトラバーサルすると、ソートされたリストが表示されます。しかし、順序どおりのトラバーサルを実行している間、ポインターをどこにどのように移動して二重リンクリストを形成するかを確認できません。
PS私はこの質問のいくつかのバリエーションをチェックしましたが、それらのどれも私に手がかりを与えませんでした。