0
我想按照它們存儲的順序返回一個包含樹中所有鍵的字符串。每個子樹中的密鑰應包含在括號中。java用括號打印BST
_7_
/ \
_3_ 8
/ \
1 6
\ /
2 4
\
5
此BST輸出應該是(((()1(()2()))3((()4(()5()))6()))7(()8()))
。 我這樣做的代碼是:
public String printKeysInOrder() {
if (isEmpty()) {
return "()";
}
printInOrderRec(root);
System.out.print(sb.toString());
return sb.toString();
}
StringBuilder sb = new StringBuilder();
private String printInOrderRec(Node root) {
if (root == null) {
return null;
}
sb.append("(");
printInOrderRec(root.left);
sb.append("(");
sb.append(")");
sb.append(root.val);
printInOrderRec(root.right);
return null;
}
這使我的輸出:(((()1(()2()3((()4(()5()6()7(()8
。 我一直在這方面工作了很長時間,無法弄清楚在哪裏以及如何追加缺失的括號。任何幫助,將不勝感激。
謝謝你的清晰解釋!我很感激 – oreillsf