Skip to content

Commit 7c86f4c

Browse files
authored
feat: add typescript solution to lc problem: No.0257.Binary Tree Paths (doocs#493)
1 parent 75d71ab commit 7c86f4c

File tree

3 files changed

+109
-0
lines changed

3 files changed

+109
-0
lines changed

solution/0200-0299/0257.Binary Tree Paths/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,44 @@ class Solution {
101101
}
102102
```
103103

104+
### **TypeScript**
105+
106+
```ts
107+
/**
108+
* Definition for a binary tree node.
109+
* class TreeNode {
110+
* val: number
111+
* left: TreeNode | null
112+
* right: TreeNode | null
113+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
114+
* this.val = (val===undefined ? 0 : val)
115+
* this.left = (left===undefined ? null : left)
116+
* this.right = (right===undefined ? null : right)
117+
* }
118+
* }
119+
*/
120+
121+
function binaryTreePaths(root: TreeNode | null): string[] {
122+
let ans = [];
123+
let pre = '';
124+
dfs(root, pre, ans);
125+
return ans;
126+
};
127+
128+
function dfs(root: TreeNode | null, pre: string, ans: string[]): void {
129+
if (root == null) return;
130+
let val = String(root.val);
131+
pre = pre.length > 0 ? `${pre}->${val}` : pre + val;
132+
// 叶子节点
133+
if (root.left == null && root.right == null) {
134+
ans.push(pre);
135+
return;
136+
}
137+
dfs(root.left, pre, ans);
138+
dfs(root.right, pre, ans);
139+
}
140+
```
141+
104142
### **...**
105143

106144
```

solution/0200-0299/0257.Binary Tree Paths/README_EN.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,44 @@ class Solution {
100100
}
101101
```
102102

103+
### **TypeScript**
104+
105+
```ts
106+
/**
107+
* Definition for a binary tree node.
108+
* class TreeNode {
109+
* val: number
110+
* left: TreeNode | null
111+
* right: TreeNode | null
112+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
113+
* this.val = (val===undefined ? 0 : val)
114+
* this.left = (left===undefined ? null : left)
115+
* this.right = (right===undefined ? null : right)
116+
* }
117+
* }
118+
*/
119+
120+
function binaryTreePaths(root: TreeNode | null): string[] {
121+
let ans = [];
122+
let pre = '';
123+
dfs(root, pre, ans);
124+
return ans;
125+
};
126+
127+
function dfs(root: TreeNode | null, pre: string, ans: string[]): void {
128+
if (root == null) return;
129+
let val = String(root.val);
130+
pre = pre.length > 0 ? `${pre}->${val}` : pre + val;
131+
// 叶子节点
132+
if (root.left == null && root.right == null) {
133+
ans.push(pre);
134+
return;
135+
}
136+
dfs(root.left, pre, ans);
137+
dfs(root.right, pre, ans);
138+
}
139+
```
140+
103141
### **...**
104142

105143
```
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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+
function binaryTreePaths(root: TreeNode | null): string[] {
16+
let ans = [];
17+
let pre = '';
18+
dfs(root, pre, ans);
19+
return ans;
20+
};
21+
22+
function dfs(root: TreeNode | null, pre: string, ans: string[]): void {
23+
if (root == null) return;
24+
let val = String(root.val);
25+
pre = pre.length > 0 ? `${pre}->${val}` : pre + val;
26+
// 叶子节点
27+
if (root.left == null && root.right == null) {
28+
ans.push(pre);
29+
return;
30+
}
31+
dfs(root.left, pre, ans);
32+
dfs(root.right, pre, ans);
33+
}

0 commit comments

Comments
 (0)