【Leetcode】437. Path Sum III

    xiaoxiao2021-03-25  97

    思路:

    定义一个getSum函数,求包括根节点的和为指定值的路径的个数。对于求总的和为指定值的路径的个数,先求包括根节点的和为指定值的路径的个数,再求左子树的包括左子树根节点的和为指定值的路径的个数,再求右子树的包括右子树根节点的和为指定值的路径的个数,三者的和即为所求。

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int pathSum(TreeNode root, int sum) { if (root == null) return 0; return getSum(root, sum) + pathSum(root.left, sum) + pathSum(root.right, sum); } public int getSum(TreeNode root, int sum) { if (root == null) return 0; int result = 0; if (root.val == sum) result++; result += getSum(root.left, sum - root.val) + getSum(root.right, sum - root.val); return result; } }

    Runtime:33ms

    转载请注明原文地址: https://ju.6miu.com/read-20447.html

    最新回复(0)