File tree 2 files changed +76
-0
lines changed
2 files changed +76
-0
lines changed Original file line number Diff line number Diff line change @@ -197,6 +197,46 @@ func expandBinaryTree(root *TreeNode) *TreeNode {
197
197
}
198
198
```
199
199
200
+ #### Swift
201
+
202
+ ``` swift
203
+ /* class TreeNode {
204
+ * var val: Int
205
+ * var left: TreeNode?
206
+ * var right: TreeNode?
207
+ * init() { self.val = 0; self.left = nil; self.right = nil }
208
+ * init(_ val: Int) { self.val = val; self.left = nil; self.right = nil }
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 expandBinaryTree (_ root : TreeNode? ) -> TreeNode? {
219
+ return dfs (root)
220
+ }
221
+
222
+ private func dfs (_ root : TreeNode? ) -> TreeNode? {
223
+ guard let root = root else { return nil }
224
+
225
+ let leftChild = dfs (root.left )
226
+ let rightChild = dfs (root.right )
227
+
228
+ if let leftChild = leftChild {
229
+ root.left = TreeNode (-1 , leftChild, nil )
230
+ }
231
+ if let rightChild = rightChild {
232
+ root.right = TreeNode (-1 , nil , rightChild)
233
+ }
234
+ return root
235
+ }
236
+ }
237
+
238
+ ```
239
+
200
240
<!-- tabs: end -->
201
241
202
242
<!-- 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
+
6
+ * init() { self.val = 0; self.left = nil; self.right = nil }
7
+ * init(_ val: Int) { self.val = val; self.left = nil; self.right = nil }
8
+ * init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
9
+ * self.val = val
10
+ * self.left = left
11
+ * self.right = right
12
+ * }
13
+ * }
14
+ */
15
+
16
+ class Solution {
17
+ func expandBinaryTree( _ root: TreeNode ? ) -> TreeNode ? {
18
+ return dfs ( root)
19
+ }
20
+
21
+ private func dfs( _ root: TreeNode ? ) -> TreeNode ? {
22
+ guard let root = root else { return nil }
23
+
24
+ let leftChild = dfs ( root. left)
25
+ let rightChild = dfs ( root. right)
26
+
27
+ if let leftChild = leftChild {
28
+ root. left = TreeNode ( - 1 , leftChild, nil )
29
+ }
30
+ if let rightChild = rightChild {
31
+ root. right = TreeNode ( - 1 , nil , rightChild)
32
+ }
33
+
34
+ return root
35
+ }
36
+ }
You can’t perform that action at this time.
0 commit comments