力扣 | 437. 路径总和 III

发布时间:2023年12月18日

437. 路径总和 III
在这里插入图片描述

mport java.util.ArrayList;
import java.util.List;

/**
 * int的取值范围:
 * -2^31 ~ 2^31-1
 * <p>
 * -2147483648 ~ 2147483647(约等于10的9次方)
 * <p>
 * long long的取值范围:
 * -2^63 ~ (2^63-1)
 * <p>
 * -9223372036854775808 ~ 9223372036854775807(约等于10的18次方)
 */
public class Problem_437_PathSum {
    public int pathSum(TreeNode root, int target) {
        return dfs(root, new ArrayList<>(), target);
    }

    public int dfs(TreeNode node, List<Long> parentPathSumList, int targetSum) {
        if (node == null) return 0;
        int cnt = 0;
        List<Long> tmp = new ArrayList<>();
        for (int i = 0; i < parentPathSumList.size(); i++) {
            long sum = parentPathSumList.get(i) + node.val;
            tmp.add(sum);
            if (sum == targetSum) cnt++;
        }
        tmp.add((long) node.val);
        if (node.val == targetSum) cnt++;

        int leftCnt = dfs(node.left, tmp, targetSum);
        int rightCnt = dfs(node.right, tmp, targetSum);
        return cnt + leftCnt + rightCnt;
    }
    }
文章来源:https://blog.csdn.net/qq_37247026/article/details/135015658
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。