gpt4 book ai didi

java - Java 中的二叉树抽象

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

Java中基本的二叉树节点可以定义为:

public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}

但在许多情况下,我需要向树节点添加字段,例如大小、高度、深度或颜色。如果我不想重写左子节点和右子节点的所有定义,请尝试直接继承:

public class TreeNodeWithDepth extends TreeNode{
int depth;
TreeNodeWithDepth(int val, int depth) {
super(val);
this.depth = depth;
}
}

不起作用,因为TreeNodeWithDepth的左右仍然是TreeNode。
有没有更好的方式来描述这种继承?

最佳答案

您可能想使用通用的TreeNode,它可以容纳您需要的任何类型的类。可能看起来像这样:

public class TreeNode<T> {
T val;
TreeNode<T> left;
TreeNode<T> right;
TreeNode(T val) {
this.val = val;
}
}

然后您可以创建一个类来保存所需的值并将其与TreeNode一起使用

关于java - Java 中的二叉树抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24591910/

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