java如何定义树
定义树结构
在Java中,树结构通常通过类来定义,每个节点包含数据和对子节点的引用。以下是一个基础的二叉树节点类实现:
class TreeNode {
int val; // 节点存储的数据
TreeNode left; // 左子节点引用
TreeNode right; // 右子节点引用
// 构造函数
TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
通用树结构(多叉树)
对于子节点数量不固定的树(如多叉树),可以使用列表存储子节点:

import java.util.List;
import java.util.ArrayList;
class TreeNode {
int val;
List<TreeNode> children; // 子节点列表
TreeNode(int val) {
this.val = val;
this.children = new ArrayList<>();
}
}
带父指针的树
某些场景需要反向追溯父节点,可增加父节点引用:

class TreeNode {
int val;
TreeNode parent;
List<TreeNode> children;
TreeNode(int val) {
this.val = val;
this.parent = null;
this.children = new ArrayList<>();
}
}
树的操作方法
基础操作如插入、遍历等需根据具体需求实现。以下是前序遍历的递归实现示例:
void preOrderTraversal(TreeNode root) {
if (root == null) return;
System.out.print(root.val + " "); // 访问当前节点
preOrderTraversal(root.left); // 递归左子树
preOrderTraversal(root.right); // 递归右子树
}
使用泛型增强灵活性
若需支持多种数据类型,可使用泛型:
class TreeNode<T> {
T data;
List<TreeNode<T>> children;
TreeNode(T data) {
this.data = data;
this.children = new ArrayList<>();
}
}






