Skip to content

Commit 11e9b31

Browse files
authored
feat: add swift implementation to lcof2 problem: No.054 (doocs#3083)
1 parent 9ffc46c commit 11e9b31

File tree

3 files changed

+85
-0
lines changed

3 files changed

+85
-0
lines changed

lcof2/剑指 Offer II 054. 所有大于等于节点的值之和/README.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,51 @@ var convertBST = function (root) {
317317
};
318318
```
319319

320+
#### Swift
321+
322+
```swift
323+
/* class TreeNode {
324+
* var val: Int
325+
* var left: TreeNode?
326+
* var right: TreeNode?
327+
* init() {
328+
* self.val = 0
329+
* self.left = nil
330+
* self.right = nil
331+
* }
332+
* init(_ val: Int) {
333+
* self.val = val
334+
* self.left = nil
335+
* self.right = nil
336+
* }
337+
* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
338+
* self.val = val
339+
* self.left = left
340+
* self.right = right
341+
* }
342+
* }
343+
*/
344+
345+
class Solution {
346+
private var s = 0
347+
348+
func convertBST(_ root: TreeNode?) -> TreeNode? {
349+
dfs(root)
350+
return root
351+
}
352+
353+
private func dfs(_ root: TreeNode?) {
354+
guard let node = root else {
355+
return
356+
}
357+
dfs(node.right)
358+
s += node.val
359+
node.val = s
360+
dfs(node.left)
361+
}
362+
}
363+
```
364+
320365
<!-- tabs:end -->
321366

322367
<!-- solution:end -->
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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+
private var s = 0
25+
26+
func convertBST(_ root: TreeNode?) -> TreeNode? {
27+
dfs(root)
28+
return root
29+
}
30+
31+
private func dfs(_ root: TreeNode?) {
32+
guard let node = root else {
33+
return
34+
}
35+
dfs(node.right)
36+
s += node.val
37+
node.val = s
38+
dfs(node.left)
39+
}
40+
}

lcof2/剑指 Offer II 055. 二叉搜索树迭代器/Solution.swift

Whitespace-only changes.

0 commit comments

Comments
 (0)