Path Sum 是 LeetCode 上的一个经典算法问题。题目要求判断一个二叉树是否存在一条从根节点到叶子节点的路径,使得路径上的节点值之和等于一个给定的数字。

解题思路

解决 Path Sum 问题的常见思路是使用递归。递归的基本思想是,对于每个节点,判断该节点是否是叶子节点,如果是,则检查其值是否等于目标值;如果不是,则递归检查其左右子节点。

以下是 Python 语言实现的代码示例:

class Solution:
    def hasPathSum(self, root, targetSum):
        if not root:
            return False
        if not root.left and not root.right:
            return root.val == targetSum
        return self.hasPathSum(root.left, targetSum - root.val) or self.hasPathSum(root.right, targetSum - root.val)

代码示例

# 以下是针对不同语言的代码示例,您可以根据需要选择合适的语言进行学习和实践。

# Python
class Solution:
    def hasPathSum(self, root, targetSum):
        if not root:
            return False
        if not root.left and not root.right:
            return root.val == targetSum
        return self.hasPathSum(root.left, targetSum - root.val) or self.hasPathSum(root.right, targetSum - root.val)

# Java
public class Solution {
    public boolean hasPathSum(TreeNode root, int targetSum) {
        if (root == null) {
            return false;
        }
        if (root.left == null && root.right == null) {
            return root.val == targetSum;
        }
        return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
    }
}

相关链接

更多 LeetCode 算法题目,请访问 LeetCode 官网

点击这里 了解更多算法基础。