Skip to content

Commit c588c2c

Browse files
authored
feat: add swift implementation to lcof2 problem: No.047 (doocs#3062)
1 parent 6ddbbfc commit c588c2c

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

lcof2/剑指 Offer II 047. 二叉树剪枝/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,46 @@ var pruneTree = function (root) {
201201
};
202202
```
203203

204+
#### Swift
205+
206+
```swift
207+
/* class TreeNode {
208+
* var val: Int
209+
* var left: TreeNode?
210+
* var right: TreeNode?
211+
* init() {
212+
* self.val = 0
213+
* self.left = nil
214+
* self.right = nil
215+
* }
216+
* init(_ val: Int) {
217+
* self.val = val
218+
* self.left = nil
219+
* self.right = nil
220+
* }
221+
* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
222+
* self.val = val
223+
* self.left = left
224+
* self.right = right
225+
* }
226+
* }
227+
*/
228+
229+
class Solution {
230+
func pruneTree(_ root: TreeNode?) -> TreeNode? {
231+
guard let root = root else {
232+
return nil
233+
}
234+
root.left = pruneTree(root.left)
235+
root.right = pruneTree(root.right)
236+
if root.val == 0 && root.left == nil && root.right == nil {
237+
return nil
238+
}
239+
return root
240+
}
241+
}
242+
```
243+
204244
<!-- tabs:end -->
205245

206246
<!-- solution:end -->
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/* class TreeNode {
2+
* var val: Int
3+
* var left: TreeNode?
4+
* var right: TreeNode?
5+
* init() {
6+
* self.val = 0
7+
* self.left = nil
8+
* self.right = nil
9+
* }
10+
* init(_ val: Int) {
11+
* self.val = val
12+
* self.left = nil
13+
* self.right = nil
14+
* }
15+
* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
16+
* self.val = val
17+
* self.left = left
18+
* self.right = right
19+
* }
20+
* }
21+
*/
22+
23+
class Solution {
24+
func pruneTree(_ root: TreeNode?) -> TreeNode? {
25+
guard let root = root else {
26+
return nil
27+
}
28+
root.left = pruneTree(root.left)
29+
root.right = pruneTree(root.right)
30+
if root.val == 0 && root.left == nil && root.right == nil {
31+
return nil
32+
}
33+
return root
34+
}
35+
}

0 commit comments

Comments
 (0)