Skip to content

Commit ee7c2e1

Browse files
committed
112.路径总和
1 parent cb92f27 commit ee7c2e1

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
- [104.二叉树的最大深度](leetcode/104.go)
2727
- [108.将有序数组转换为二叉搜索树](leetcode/108.go)
2828
- [111.二叉树的最小深度](leetcode/111.go)
29+
- [112.路径总和](leetcode/112.go)
2930
- [118.杨辉三角](leetcode/118.go)
3031
- [121.买卖股票的最佳时机](leetcode/121.go)
3132
- [217.存在重复元素](leetcode/217.go)

leetcode/112.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package leetcode
2+
3+
//给你二叉树的根节点root 和一个表示目标和的整数targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和targetSum 。如果存在,返回 true ;否则,返回 false 。
4+
//叶子节点 是指没有子节点的节点。
5+
6+
func hasPathSum(root *TreeNode, targetSum int) bool {
7+
var dfs func(root *TreeNode, targetSum int) bool
8+
dfs = func(root *TreeNode, targetSum int) bool {
9+
if root == nil {
10+
return false
11+
}
12+
if root.Val == targetSum && root.Left == nil && root.Right == nil {
13+
//如果节点等于目标值,并且是叶子节点,则说明存在路径
14+
return true
15+
}
16+
//递归寻找左右子树是否有节点等于目标值
17+
return dfs(root.Left, targetSum-root.Val) || dfs(root.Right, targetSum-root.Val)
18+
}
19+
return dfs(root, targetSum)
20+
}

0 commit comments

Comments
 (0)