是的,Java中的TreeNode类可以复制节点。你可以通过创建一个新的TreeNode对象,并将原始节点的值和子节点列表复制到新对象中来实现这一点。以下是一个简单的示例:
class TreeNode { int val; Listchildren; public TreeNode(int val) { this.val = val; this.children = new ArrayList<>(); } } public class Main { public static void main(String[] args) { // 创建一个简单的树结构 TreeNode root = new TreeNode(1); TreeNode child1 = new TreeNode(2); TreeNode child2 = new TreeNode(3); root.children.add(child1); root.children.add(child2); // 复制树结构 TreeNode copiedRoot = copyTree(root); // 输出复制后的树结构 System.out.println("Original tree:"); printTree(root, 0); System.out.println("\nCopied tree:"); printTree(copiedRoot, 0); } public static TreeNode copyTree(TreeNode node) { if (node == null) { return null; } TreeNode copiedNode = new TreeNode(node.val); for (TreeNode child : node.children) { copiedNode.children.add(copyTree(child)); } return copiedNode; } public static void printTree(TreeNode node, int level) { if (node == null) { return; } for (int i = 0; i < level; i++) { System.out.print(" "); } System.out.println(node.val); for (TreeNode child : node.children) { printTree(child, level + 1); } } }
这个示例中,我们首先创建了一个简单的树结构,然后使用copyTree
方法复制了这个结构。最后,我们使用printTree
方法分别打印原始树和复制后的树,以验证复制操作是否成功。