中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
勐海县| 锦屏县| 新蔡县| 武定县| 建宁县| 甘孜县| 舟曲县| 亳州市| 特克斯县| 龙胜| 连山| 新源县| 分宜县| 鄂托克前旗| 隆德县| 嵊泗县| 门头沟区| 封开县| 玉山县| 八宿县| 南漳县| 喜德县| 青冈县| 泸溪县| 辽阳县| 平利县| 灵台县| 图木舒克市| 云龙县| 伊宁市| 屏东市| 西和县| 广安市| 罗江县| 博爱县| 祁东县| 余干县| 克什克腾旗| 乾安县| 宾川县| 宜昌市|