File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Definition for a binary tree node.
3
+ * class TreeNode {
4
+ * val: number
5
+ * left: TreeNode | null
6
+ * right: TreeNode | null
7
+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
8
+ * this.val = (val===undefined ? 0 : val)
9
+ * this.left = (left===undefined ? null : left)
10
+ * this.right = (right===undefined ? null : right)
11
+ * }
12
+ * }
13
+ */
14
+
15
+ /**
16
+ * Definition for a binary tree node.
17
+ * class TreeNode {
18
+ * val: number
19
+ * left: TreeNode | null
20
+ * right: TreeNode | null
21
+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
22
+ * this.val = (val===undefined ? 0 : val)
23
+ * this.left = (left===undefined ? null : left)
24
+ * this.right = (right===undefined ? null : right)
25
+ * }
26
+ * }
27
+ */
28
+
29
+ function hasPathSum ( root : TreeNode | null , targetSum : number ) : boolean {
30
+ if ( ! root ) return false ;
31
+ let res : boolean = false ;
32
+ let sum : number = 0 ;
33
+ //不是简洁的写法,但是回溯思路比较清晰
34
+ function dfs ( node : TreeNode | null ) {
35
+ if ( ! node ) return ;
36
+ if ( node . left === null && node . right === null ) {
37
+ if ( sum + node . val === targetSum ) {
38
+ res = true ;
39
+ return
40
+ }
41
+ }
42
+ sum += node . val ;
43
+ dfs ( node . left ) ;
44
+ sum -= node . val ;
45
+
46
+ sum += node . val ;
47
+ dfs ( node . right ) ;
48
+ sum -= node . val ;
49
+ }
50
+ dfs ( root ) ;
51
+ return res ;
52
+ }
You can’t perform that action at this time.
0 commit comments