亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
叶城县| 察隅县| 牡丹江市| 裕民县| 中阳县| 青阳县| 龙岩市| 瓦房店市| 盖州市| 栾城县| 瑞丽市| 南康市| 昔阳县| 清水县| 辽中县| 枣强县| 佛冈县| 麻阳| 赣州市| 从江县| 西青区| 木兰县| 洛阳市| 沅陵县| 汉源县| 仲巴县| 富源县| 余庆县| 平远县| 丰城市| 方山县| 嘉黎县| 固始县| 缙云县| 河间市| 大姚县| 旌德县| 阿合奇县| 张家界市| 海安县| 类乌齐县|