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

溫馨提示×

c#二叉樹的層次遍歷實現方法

c#
小樊
84
2024-07-26 02:44:16
欄目: 編程語言

下面是一個C#實現二叉樹的層次遍歷的例子:

using System;
using System.Collections.Generic;

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 BinaryTree {
    public List<List<int>> LevelOrder(TreeNode root) {
        List<List<int>> result = new List<List<int>>();
        if (root == null) {
            return result;
        }

        Queue<TreeNode> queue = new Queue<TreeNode>();
        queue.Enqueue(root);

        while (queue.Count > 0) {
            int levelSize = queue.Count;
            List<int> levelValues = new List<int>();

            for (int i = 0; i < levelSize; i++) {
                TreeNode node = queue.Dequeue();
                levelValues.Add(node.val);

                if (node.left != null) {
                    queue.Enqueue(node.left);
                }
                if (node.right != null) {
                    queue.Enqueue(node.right);
                }
            }

            result.Add(levelValues);
        }

        return result;
    }
}

class Program {
    static void Main() {
        TreeNode root = new TreeNode(3);
        root.left = new TreeNode(9);
        root.right = new TreeNode(20);
        root.right.left = new TreeNode(15);
        root.right.right = new TreeNode(7);

        BinaryTree bt = new BinaryTree();
        List<List<int>> result = bt.LevelOrder(root);

        foreach (List<int> level in result) {
            Console.Write("[");
            foreach (int val in level) {
                Console.Write(val + " ");
            }
            Console.Write("]");
            Console.WriteLine();
        }
    }
}

這段代碼實現了一個二叉樹的層次遍歷。通過使用一個隊列來輔助遍歷,每次遍歷一層節點,依次將它們的值存入結果列表中。最后返回結果列表。在Main函數中創建一個二叉樹節點并調用LevelOrder方法進行層次遍歷。

0
巫山县| 富裕县| 建瓯市| 东兴市| 南江县| 崇礼县| 浪卡子县| 华容县| 萨迦县| 梁山县| 鄂伦春自治旗| 惠东县| 建德市| 金塔县| 奉贤区| 尤溪县| 靖西县| 彭州市| 海伦市| 榆林市| 刚察县| 乐都县| 高陵县| 蕉岭县| 沂水县| 池州市| 焦作市| 江西省| 灵丘县| 上饶市| 壶关县| 贵德县| 长子县| 乌什县| 石河子市| 泰安市| 运城市| 平邑县| 天全县| 卢湾区| 大荔县|