Java AVL树toString()的实现
这是我的toString(),但它不能正常工作Java AVL树toString()的实现,java,stringbuilder,avl-tree,Java,Stringbuilder,Avl Tree,这是我的toString(),但它不能正常工作 public String toString() { StringBuilder str = new StringBuilder("{"); traverse(root, str); str.append("}"); return str.toString(); } private void traverse(TreeNode node, StringBuilder
public String toString() {
StringBuilder str = new StringBuilder("{");
traverse(root, str);
str.append("}");
return str.toString();
}
private void traverse(TreeNode node, StringBuilder str){
if (node == null){
return;
}
if (node.left != null) {
traverse(node.left, str);
str.append(", ");
}
str.append(node.left);
if (node.right != null) {
str.append(", ");
traverse(node.right, str);
}
}
这是方法打印出来的内容:
{null,AbstractTreeMap$TreeNode@15a8767}
感谢您的帮助。多谢各位
if (node.left != null) {
inOrder(node.left, result);
result.append(", ");
}
result.append(node); //this will print the node itself
另外,
TreeNode
没有覆盖toString()
方法,因此它显示哈希代码。不是正确的实现。A) 由单个节点组成的树会生成一个空字符串B)从不打印根C)添加不必要的逗号。@EyalSchneider toString()中的null是由于这一行造成的,所以刚刚指出了错误。正确的逻辑是错误的。
if (node.left != null) {
inOrder(node.left, result);
result.append(", ");
}
result.append(node); //this will print the node itself