437.路径总和3
2026/4/15 22:33:51 网站建设 项目流程
package org.example; class Solution { public int pathSum(TreeNode root, int targetSum) { if (root == null) { return 0; } // 符合条件的路径的数量 int pathSum = 0; // 以当前结点为根结点且结点值之和等于目标和的路径的数量 pathSum += traversal(root, targetSum - root.val); // 以当前结点的左子树上的结点为根结点且结点值之和等于目标和的路径的数量 pathSum += pathSum(root.left, targetSum); // 以当前结点的右子树上的结点为根结点且结点值之和等于目标和的路径的数量 pathSum += pathSum(root.right, targetSum); return pathSum; } /** * 统计以 root 为根结点且结点值之和等于目标和的路径的数量 * * @param root 根结点 * @param targetSum 目标和 * @return 符合条件的路径的数量 */ private int traversal(TreeNode root, long targetSum) { if (root == null) { return 0; } // 符合条件的路径的数量 int pathSum = 0; // 判断以当前结点为终点的路径中的结点值之和是否等于目标和 if (targetSum == 0) { pathSum++; } // 递归地检查左子树 if (root.left != null) { pathSum += traversal(root.left, targetSum - root.left.val); } // 递归地检查右子树 if (root.right != null) { pathSum += traversal(root.right, targetSum - root.right.val); } return pathSum; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询