0
バイナリ検索ツリーのシリアライズとデシリアライズに関する標準的なインタビューの問題を解決しようとしています。元のBSTは、すべてのヌルインスタンスで-1としてデリミタをトラバースするプリオーダを使用してシリアル化されています。 これはシリアライズされたツリーです。BSTのシリアライズと逆シリアル化
1297-1-110-1-11413-1-117-1-19
これはこれは、しかし、正しい出力が得られない
public static Node deserialize(List<Integer> list){
int index = 0;
return deserialize(list, index);
}
private static Node deserialize(List<Integer> list, int index) {
if(index == list.size()){
return null;
}
if(list.get(index) == -1){
index++;
return null;
}
Node root = new Node(list.get(index++));
root.setLeft(deserialize(list, index));
root.setRight(deserialize(list, index));
return root;
}
、BSTをデシリアライズするために私のコードです。デバッグでは、関数のフォールドアウト時にインデックスの値が元の値に戻ってしまい、結果が間違っていることがわかりました。コールスタック全体でインデックス値を維持できる方法はありますか?どんな助けもありがたい。
これはデバッグサービスではありません。 – Raedwald