Skip to content

Commit b8c09bc

Browse files
committed
Add Path Sum TS Solution
1 parent 8b8e92b commit b8c09bc

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

Problems/04-Path-Sum/Path-Sum.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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+
}

0 commit comments

Comments
 (0)