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

溫馨提示×

c#二叉樹中路徑和的計算方法

c#
小樊
81
2024-07-26 02:46:17
欄目: 編程語言

以下是用C#實現二叉樹中路徑和的計算方法:

using System;

public class TreeNode
{
    public int val;
    public TreeNode left;
    public TreeNode right;
    public TreeNode(int value = 0, TreeNode leftChild = null, TreeNode rightChild = null)
    {
        val = value;
        left = leftChild;
        right = rightChild;
    }
}

public class BinaryTree
{
    public int PathSum(TreeNode root, int sum)
    {
        if (root == null)
        {
            return 0;
        }

        return PathSumFrom(root, sum) + PathSum(root.left, sum) + PathSum(root.right, sum);
    }

    private int PathSumFrom(TreeNode node, int sum)
    {
        if (node == null)
        {
            return 0;
        }

        int count = 0;
        if (node.val == sum)
        {
            count++;
        }

        count += PathSumFrom(node.left, sum - node.val);
        count += PathSumFrom(node.right, sum - node.val);

        return count;
    }
}

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

        BinaryTree tree = new BinaryTree();
        int sum = 8;
        int result = tree.PathSum(root, sum);

        Console.WriteLine("Number of paths with sum " + sum + ": " + result);
    }
}

在上面的代碼中,我們定義了一個TreeNode類來表示二叉樹中的節點,以及一個BinaryTree類來計算二叉樹中路徑和等于給定值的路徑數量。在BinaryTree類中,我們使用遞歸的方法來遍歷二叉樹,并計算路徑和等于給定值的路徑數量。在Main方法中,我們創建了一個二叉樹,并計算路徑和等于8的路徑數量。

0
叙永县| 滁州市| 观塘区| 开封县| 水富县| 贵州省| 全椒县| 丰台区| 托里县| 合川市| 泸西县| 乐安县| 麟游县| 松溪县| 龙胜| 江油市| 新沂市| 山东省| 奉节县| 阳原县| 冕宁县| 嘉定区| 保德县| 张家界市| 垦利县| 普定县| 常宁市| 柳江县| 增城市| 梅州市| 固始县| 祁东县| 齐齐哈尔市| 泗阳县| 固原市| 南充市| 杭锦旗| 南木林县| 东兰县| SHOW| 石狮市|