Skip to content

Commit 07d7ace

Browse files
committed
feat: add ts solution to lc problem: No.1379
No.1379.Find a Corresponding Node of a Binary Tree in a Clone of That Tree
1 parent 6356387 commit 07d7ace

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed

solution/1300-1399/1379.Find a Corresponding Node of a Binary Tree in a Clone of That Tree/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,41 @@ public:
176176
};
177177
```
178178
179+
### **TypeScript**
180+
181+
```ts
182+
/**
183+
* Definition for a binary tree node.
184+
* class TreeNode {
185+
* val: number
186+
* left: TreeNode | null
187+
* right: TreeNode | null
188+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
189+
* this.val = (val===undefined ? 0 : val)
190+
* this.left = (left===undefined ? null : left)
191+
* this.right = (right===undefined ? null : right)
192+
* }
193+
* }
194+
*/
195+
196+
function getTargetCopy(
197+
original: TreeNode | null,
198+
cloned: TreeNode | null,
199+
target: TreeNode | null,
200+
): TreeNode | null {
201+
if (cloned === null) {
202+
return null;
203+
}
204+
if (cloned.val === target.val) {
205+
return cloned;
206+
}
207+
return (
208+
getTargetCopy(original, cloned.left, target) ||
209+
getTargetCopy(original, cloned.right, target)
210+
);
211+
}
212+
```
213+
179214
### **...**
180215

181216
```

solution/1300-1399/1379.Find a Corresponding Node of a Binary Tree in a Clone of That Tree/README_EN.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,41 @@ public:
152152
};
153153
```
154154
155+
### **TypeScript**
156+
157+
```ts
158+
/**
159+
* Definition for a binary tree node.
160+
* class TreeNode {
161+
* val: number
162+
* left: TreeNode | null
163+
* right: TreeNode | null
164+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
165+
* this.val = (val===undefined ? 0 : val)
166+
* this.left = (left===undefined ? null : left)
167+
* this.right = (right===undefined ? null : right)
168+
* }
169+
* }
170+
*/
171+
172+
function getTargetCopy(
173+
original: TreeNode | null,
174+
cloned: TreeNode | null,
175+
target: TreeNode | null,
176+
): TreeNode | null {
177+
if (cloned === null) {
178+
return null;
179+
}
180+
if (cloned.val === target.val) {
181+
return cloned;
182+
}
183+
return (
184+
getTargetCopy(original, cloned.left, target) ||
185+
getTargetCopy(original, cloned.right, target)
186+
);
187+
}
188+
```
189+
155190
### **...**
156191

157192
```
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
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 getTargetCopy(
16+
original: TreeNode | null,
17+
cloned: TreeNode | null,
18+
target: TreeNode | null,
19+
): TreeNode | null {
20+
if (cloned === null) {
21+
return null;
22+
}
23+
if (cloned.val === target.val) {
24+
return cloned;
25+
}
26+
return (
27+
getTargetCopy(original, cloned.left, target) ||
28+
getTargetCopy(original, cloned.right, target)
29+
);
30+
}

0 commit comments

Comments
 (0)