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 387fb1e

Browse files
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‎

Lines changed: 33 additions & 0 deletions
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‎

Lines changed: 33 additions & 0 deletions
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 -->
Lines changed: 30 additions & 0 deletions
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)

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