Skip to content

Commit 387fb1e

Browse files
authored
feat: add swift implementation to lcci problem: No.04.02 (doocs#2651)
1 parent 1276eba commit 387fb1e

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed

lcci/04.02.Minimum Height Tree/README.md

+33
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,39 @@ var sortedArrayToBST = function (nums) {
214214
};
215215
```
216216

217+
```swift
218+
/**
219+
* class TreeNode {
220+
* var val: Int
221+
* var left: TreeNode?
222+
* var right: TreeNode?
223+
*
224+
* init(_ val: Int, _ left: TreeNode? = nil, _ right: TreeNode? = nil) {
225+
* self.val = val
226+
* self.left = left
227+
* self.right = right
228+
* }
229+
* }
230+
*/
231+
232+
class Solution {
233+
private var nums: [Int]!
234+
235+
func sortedArrayToBST(_ nums: [Int]) -> TreeNode? {
236+
self.nums = nums
237+
return dfs(0, nums.count - 1)
238+
}
239+
240+
private func dfs(_ l: Int, _ r: Int) -> TreeNode? {
241+
if l > r {
242+
return nil
243+
}
244+
let mid = (l + r) / 2
245+
return TreeNode(nums[mid], dfs(l, mid - 1), dfs(mid + 1, r))
246+
}
247+
}
248+
```
249+
217250
<!-- tabs:end -->
218251

219252
<!-- end -->

lcci/04.02.Minimum Height Tree/README_EN.md

+33
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,39 @@ var sortedArrayToBST = function (nums) {
237237
};
238238
```
239239

240+
```swift
241+
/**
242+
* class TreeNode {
243+
* var val: Int
244+
* var left: TreeNode?
245+
* var right: TreeNode?
246+
*
247+
* init(_ val: Int, _ left: TreeNode? = nil, _ right: TreeNode? = nil) {
248+
* self.val = val
249+
* self.left = left
250+
* self.right = right
251+
* }
252+
* }
253+
*/
254+
255+
class Solution {
256+
private var nums: [Int]!
257+
258+
func sortedArrayToBST(_ nums: [Int]) -> TreeNode? {
259+
self.nums = nums
260+
return dfs(0, nums.count - 1)
261+
}
262+
263+
private func dfs(_ l: Int, _ r: Int) -> TreeNode? {
264+
if l > r {
265+
return nil
266+
}
267+
let mid = (l + r) / 2
268+
return TreeNode(nums[mid], dfs(l, mid - 1), dfs(mid + 1, r))
269+
}
270+
}
271+
```
272+
240273
<!-- tabs:end -->
241274

242275
<!-- end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* class TreeNode {
3+
* var val: Int
4+
* var left: TreeNode?
5+
* var right: TreeNode?
6+
*
7+
* init(_ val: Int, _ left: TreeNode? = nil, _ right: TreeNode? = nil) {
8+
* self.val = val
9+
* self.left = left
10+
* self.right = right
11+
* }
12+
* }
13+
*/
14+
15+
class Solution {
16+
private var nums: [Int]!
17+
18+
func sortedArrayToBST(_ nums: [Int]) -> TreeNode? {
19+
self.nums = nums
20+
return dfs(0, nums.count - 1)
21+
}
22+
23+
private func dfs(_ l: Int, _ r: Int) -> TreeNode? {
24+
if l > r {
25+
return nil
26+
}
27+
let mid = (l + r) / 2
28+
return TreeNode(nums[mid], dfs(l, mid - 1), dfs(mid + 1, r))
29+
}
30+
}

0 commit comments

Comments
 (0)