File tree Expand file tree Collapse file tree 2 files changed +76
-0
lines changed Expand file tree Collapse file tree 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 {
197197}
198198```
199199
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+
200240<!-- tabs: end -->
201241
202242<!-- 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