当前位置: 首页 > 知识库问答 >
问题:

镜像二叉树

林礼骞
2023-03-14

我有一个简单的Node类来构造我的二叉树中的树节点:

class Node {
    int data;
    Node left;
    Node right;

    public Node(int i) {
        this.data = i;
    }
}

我编写了一个简单的Tree类,它将使用节点结构来构建一个树:

class Tree {
    Node root;
}
public Tree mirror() {
    Node temp = this.root.left;
    this.root.left = this.root.right;
    this.root.right = temp;

如果你能给我指明正确的方向,我将不胜感激。

共有1个答案

徐涵亮
2023-03-14

您需要一个单独的方法,该方法将接受node对象,镜像它的子对象,并递归地调用它自己。

public Tree mirror() {
    mirrorInternal(this.root);
    return this;
}

private void mirrorInternal(Node node) {
    Node tmp = node.left;
    node.left = node.right;
    node.right = tmp;
    if (node.left != null) {
        mirrorInternal(node.left);
    }
    if (node.right != null) {
        mirrorInternal(node.right);
    }
}      
 类似资料:
  • NowCoder 题目描述 解题思路 // java public void Mirror(TreeNode root) { if (root == null) return; swap(root); Mirror(root.left); Mirror(root.right); } private void swap(TreeNode root)

  • 一、题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 二、解题思路 先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。 三、解题代码 public class Test { /** * 二叉树的树结点 */ public static class BinaryTreeN

  • 本文向大家介绍手写代码:给一个二叉树,怎么得到这棵树的镜像相关面试题,主要包含被问及手写代码:给一个二叉树,怎么得到这棵树的镜像时的应答技巧和注意事项,需要的朋友参考一下 参考回答:  

  • 镜像分为两部分: 时间/设备筛选 和 镜像分析 (详情) 1.时间/设备筛选 便捷按钮有今日、昨日、前日、上周 X、近七天,根据想要的访问设备来得出想要的结果报表 2.镜像分析(详情) 1)本功能适用于可以通过被访问URL开头字串(不仅限于域名)来区分镜像的情况 2)添加镜像成功,可以继续添加

  • 镜像回收站用于存放用户删除的镜像文件。 镜像回收站用于存放用户删除的系统镜像和主机镜像。在回收站中镜像文件不支持自动清除操作,需要用户手动清除。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/回收站/镜像” 菜单项,进入镜像回收站列表。 清除 当确定回收站中的镜像文件无用后,可使用清除功能立即彻底删除文件。 清除单个镜像 单击 “清除” 按钮,弹出操作确认对话框。 单击 “

  • 镜像是用于新建虚拟机、裸金属使用的模板文件。 系统镜像 系统镜像用于创建虚拟机和裸金属设备。 主机镜像 主机镜像用于创建虚拟机,主机镜像是同时将模板虚拟机上的所有硬盘保存为镜像,基于主机镜像创建的虚拟机拥有除模板虚拟机用户数据之外的全部数据。