File tree Expand file tree Collapse file tree 2 files changed +81
-0
lines changed
lcof2/剑指 Offer II 049. 从根节点到叶节点的路径数字之和 Expand file tree Collapse file tree 2 files changed +81
-0
lines changed Original file line number Diff line number Diff line change @@ -189,6 +189,49 @@ func sumNumbers(root *TreeNode) int {
189
189
}
190
190
```
191
191
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
+
192
235
<!-- tabs:end -->
193
236
194
237
<!-- solution:end -->
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments