From 22a960052265d8a92e9044cbb048d5316dc2d216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E6=A0=91=E6=A3=AE?= <14021051@buaa.edu.cn> Date: Sat, 3 Nov 2018 14:25:40 +0800 Subject: [PATCH] Create 112. Path Sum.md --- 112. Path Sum.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 112. Path Sum.md diff --git a/112. Path Sum.md b/112. Path Sum.md new file mode 100644 index 0000000..0108682 --- /dev/null +++ b/112. Path Sum.md @@ -0,0 +1,17 @@ +# [112. Path Sum](https://leetcode.com/problems/path-sum/description/) +# 思路 +根据题意,若树空则肯定是false,若非空,则: +* 若没有左右子树(叶子),判断其值是否满足条件; +* 否则,递归判断其左右子树是否满足,只要有一个满足即满足(即或操作)。 + +# C++ +``` C++ +class Solution { +public: + bool hasPathSum(TreeNode* root, int sum) { + if(root == NULL) return false; + if(root -> left == NULL && root -> right == NULL && sum == (root -> val)) return true; // 叶子节点 + return hasPathSum(root -> left, sum - (root -> val)) || hasPathSum(root -> right, sum - (root -> val)); + } +}; +```