gpt4 book ai didi

java - 二叉树的节点类。出现堆栈溢出错误

转载 作者:行者123 更新时间:2023-12-01 16:49:34 25 4
gpt4 key购买 nike

我在树数据结构的节点类中收到 Stackoverflow 错误。我知道原因,但我似乎无法解决它。

public class Node {
Node right;
Node left;
String element;
Node parent;

public Node(){
right = new Node();
left = new Node();
}
}

因为我在构造函数中构造新节点,所以出现堆栈溢出。如何构造我的构造函数并避免此错误?

最佳答案

您可以在节点实际存在时按需创建它们。

public class Node {
Node left, right; // created as required
String element;
Node parent;

public Node(Node parent, String element) {
this.parent = parent;
this.element = element; // if you don't have an element you don't need a Node.
}
}

注意:您很可能不需要 parent 字段,大多数实现不使用它。

public class Node {
Node left, right; // created as required
String element;

public Node(String element) {
this.element = element; // if you don't have an element you don't need a Node.
}

public void setLeft(Node left) { this.left = left; }
public void setRight(Node right) { this.right = right; }
}

例如

 Node d = new Node("d");
d.setLeft(new Node("a"));
d.setRight(new Node("z"));

关于java - 二叉树的节点类。出现堆栈溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43210101/

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