91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c#二叉樹的鏡像反轉如何實現

c#
小樊
83
2024-07-26 02:45:15
欄目: 編程語言

在C#中,可以通過遞歸的方式實現二叉樹的鏡像反轉。具體步驟如下:

  1. 定義一個遞歸函數,該函數接受一個二叉樹節點作為參數。
  2. 在遞歸函數中,首先判斷當前節點是否為null,如果是則直接返回。
  3. 然后交換當前節點的左右子節點。
  4. 遞歸調用該函數分別對當前節點的左子節點和右子節點進行鏡像反轉操作。

以下是一個示例實現:

using System;

public class TreeNode
{
    public int val;
    public TreeNode left;
    public TreeNode right;

    public TreeNode(int val = 0, TreeNode left = null, TreeNode right = null)
    {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}

public class BinaryTreeMirror
{
    public void MirrorTree(TreeNode root)
    {
        if (root == null) return;

        // 交換當前節點的左右子節點
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;

        // 遞歸調用該函數對左右子節點進行鏡像反轉
        MirrorTree(root.left);
        MirrorTree(root.right);
    }

    public void PrintTree(TreeNode root)
    {
        if (root == null) return;

        Console.WriteLine(root.val);
        PrintTree(root.left);
        PrintTree(root.right);
    }
}

class Program
{
    static void Main()
    {
        TreeNode root = new TreeNode(1);
        root.left = new TreeNode(2);
        root.right = new TreeNode(3);
        root.left.left = new TreeNode(4);
        root.left.right = new TreeNode(5);

        BinaryTreeMirror treeMirror = new BinaryTreeMirror();
        Console.WriteLine("Original Tree:");
        treeMirror.PrintTree(root);

        treeMirror.MirrorTree(root);

        Console.WriteLine("Mirrored Tree:");
        treeMirror.PrintTree(root);
    }
}

在上面的示例中,我們首先構建了一個簡單的二叉樹,并實例化了一個BinaryTreeMirror類,其中包含了一個MirrorTree方法用于實現二叉樹的鏡像反轉操作。通過調用MirrorTree方法,可以實現對二叉樹的鏡像反轉,最后通過PrintTree方法可以打印出反轉后的二叉樹。

0
宁德市| 聂拉木县| 阳朔县| 定结县| 湾仔区| 榕江县| 白朗县| 贵溪市| 阿拉尔市| 海丰县| 台州市| 邛崃市| 穆棱市| 清镇市| 定州市| 西充县| 轮台县| 西盟| 天津市| 东海县| 潢川县| 洪雅县| 咸宁市| 西峡县| 芜湖市| 集贤县| 昭苏县| 崇阳县| 嫩江县| 庄浪县| 偃师市| 涞源县| 绵阳市| 喀喇沁旗| 榆林市| 饶平县| 拜城县| 金湖县| 同心县| 鹤岗市| 天全县|