Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f711e88

Browse files
feat: add swift implementation to lcof2 problem: No.049 (doocs#3064)
1 parent b574ba5 commit f711e88

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

‎lcof2/剑指 Offer II 049. 从根节点到叶节点的路径数字之和/README.md‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,49 @@ func sumNumbers(root *TreeNode) int {
189189
}
190190
```
191191

192+
#### Swift
193+
194+
```swift
195+
/* class TreeNode {
196+
* var val: Int
197+
* var left: TreeNode?
198+
* var right: TreeNode?
199+
* init() {
200+
* self.val = 0
201+
* self.left = nil
202+
* self.right = nil
203+
* }
204+
* init(_ val: Int) {
205+
* self.val = val
206+
* self.left = nil
207+
* self.right = nil
208+
* }
209+
* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
210+
* self.val = val
211+
* self.left = left
212+
* self.right = right
213+
* }
214+
* }
215+
*/
216+
217+
class Solution {
218+
func sumNumbers(_ root: TreeNode?) -> Int {
219+
return dfs(root, 0)
220+
}
221+
222+
private func dfs(_ root: TreeNode?, _ presum: Int) -> Int {
223+
guard let root = root else {
224+
return 0
225+
}
226+
let s = presum * 10 + root.val
227+
if root.left == nil && root.right == nil {
228+
return s
229+
}
230+
return dfs(root.left, s) + dfs(root.right, s)
231+
}
232+
}
233+
```
234+
192235
<!-- tabs:end -->
193236

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

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /