下面是一个简单的 Java 代码示例,用于复制树形菜单结构:
public class MenuCopy {
public static MenuNode copy(MenuNode root) {
if (root == null) {
return null;
}
// 复制根节点
MenuNode newRoot = new MenuNode(root.name, root.link);
// 递归复制子节点
for (MenuNode child : root.children) {
MenuNode newChild = copy(child);
newRoot.addChild(newChild);
}
return newRoot;
}
// 菜单节点类
public static class MenuNode {
String name; // 节点名称
String link; // 节点链接
List<MenuNode> children; // 子节点列表
public MenuNode(String name, String link) {
this.name = name;
this.link = link;
this.children = new ArrayList<>();
}
public void addChild(MenuNode child) {
children.add(child);
}
}
}
在这个示例中,我们定义了一个名为 MenuCopy 的类,其中包含一个静态方法 copy(),该方法接受一个菜单树的根节点作为参数,并返回根节点的一份副本。在 copy() 方法中,我们首先创建一个新的节点,其名称和链接等于原始根节点的名称和链接。然后,我们递归地复制子节点,将它们添加到新节点的子节点列表中。最后,我们返回新的根节点副本。
请注意,为了简化示例,我们使用了一个内部的 MenuNode 类来表示菜单节点。每个节点都包含一个名称、链接和子节点列表。在实际应用中,您可能需要使用更复杂的数据结构来表示菜单项,并为其提供更多的属性和方法以支持菜单的操作和管理。