破解Google SynthID:AI水印逆向工程
2026/4/16 1:55:11
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; } }