112. Path Sum ¶ Time: $O(n)$ Space: $O(h)$ C++JavaPython 1 2 3 4 5 6 7 8 9 10 11class Solution { public: bool hasPathSum(TreeNode* root, int sum) { if (root == nullptr) return false; if (root->val == sum && root->left == nullptr && root->right == nullptr) return true; return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val); } }; 1 2 3 4 5 6 7 8 9 10 11class Solution { public boolean hasPathSum(TreeNode root, int sum) { if (root == null) return false; if (root.val == sum && root.left == null && root.right == null) return true; return // hasPathSum(root.left, sum - root.val) || // hasPathSum(root.right, sum - root.val); } } 1 2 3 4 5 6 7 8class Solution: def hasPathSum(self, root: TreeNode, summ: int) -> bool: if not root: return False if root.val == summ and not root.left and not root.right: return True return (self.hasPathSum(root.left, summ - root.val) or self.hasPathSum(root.right, summ - root.val))