gpt4 book ai didi

java - 如何避免二叉搜索树的字符串表示中的 NULL?

转载 作者:行者123 更新时间:2023-11-30 08:22:27 25 4
gpt4 key购买 nike

作为一项编程练习,我需要重写一些构成二叉树的现有方法和类。 (方法签名和构造函数必须保持不变)。不知何故,我似乎不太明白我在这里做了什么。

toString 方法是否必须公开,因为它覆盖了 Object 类的 toString 方法?我怎样才能避免返回空值?

这是我到目前为止的代码:

树类

Node root = null;

void addNode(int val) {
Node newNode = new Node(val);
root = newNode.addNode(root, val);
}

节点类

Node(int val) {
val = val;
left = null;
right = null;
}

Node addNode(Node focusNode, int newNodeVal) {

if (focusNode == null)
return this;
if (newNodeVal == focusNode.val)
return focusNode;
if (newNodeVal < focusNode.val)
focusNode.left = this.addNode(focusNode.left, newNodeVal);
else
focusNode.right = this.addNode(focusNode.right, newNodeVal);

return focusNode;
}

public String toString() {
return this.left + " " + this.val + " " + this.right;
}

最佳答案

使用一个StringBuilder来存储节点的String表示,并且仅在特定节点不为null时追加子节点的数据>。这是一个使用 infix navigation 的示例在节点上:

public String toString() {
StringBuilder sb = new StringBuilder();
if (this.left != null) {
sb.append(this.left);
sb.append(' ');
}
sb.append(this.val);
if (this.right != null) {
sb.append(' ');
sb.append(this.right);
}
return sb.toString();
}

关于java - 如何避免二叉搜索树的字符串表示中的 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24389995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com