予約注文のサブツリーの ( および ) を出力する必要があります。
A
/ \
B G
/ \
C P
\
E
私はやろうとしました:
public StringBuilder preOrder(StringBuilder string) {
string.append(value);
if (left!=null || right!=null)
string.append("(");
if (left != null){
left.preOrder(string);
}
if (left!=null && right!=null)
string.append(")");
if (right != null){
right.preOrder(string);
}
return string;
}
ただし、結果は次のようになります。
A(B(C(E)P)G
それ以外の:
(A(B(C(E)P)G))
なにが問題ですか?
編集:
そうでなければならない
(A(B(C(E())P())G()))