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

Appearance settings

Commit 4614207

Browse filesBrowse files
authored
feat: add swift implementation to lcof2 problem: No.055 (doocs#3084)
1 parent 11e9b31 commit 4614207
Copy full SHA for 4614207

File tree

Expand file treeCollapse file tree

2 files changed

+103
-0
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

2 files changed

+103
-0
lines changed
Open diff view settings
Collapse file

‎lcof2/剑指 Offer II 055. 二叉搜索树迭代器/README.md‎

Copy file name to clipboardExpand all lines: lcof2/剑指 Offer II 055. 二叉搜索树迭代器/README.md
+54Lines changed: 54 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,60 @@ BSTIterator.prototype.hasNext = function () {
431431
*/
432432
```
433433

434+
#### Swift
435+
436+
```swift
437+
/* class TreeNode {
438+
* var val: Int
439+
* var left: TreeNode?
440+
* var right: TreeNode?
441+
* init() {
442+
* self.val = 0
443+
* self.left = nil
444+
* self.right = nil
445+
* }
446+
* init(_ val: Int) {
447+
* self.val = val
448+
* self.left = nil
449+
* self.right = nil
450+
* }
451+
* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
452+
* self.val = val
453+
* self.left = left
454+
* self.right = right
455+
* }
456+
* }
457+
*/
458+
459+
class BSTIterator {
460+
private var cur = 0
461+
private var vals = [Int]()
462+
463+
init(_ root: TreeNode?) {
464+
inorder(root)
465+
}
466+
467+
func next() -> Int {
468+
let value = vals[cur]
469+
cur += 1
470+
return value
471+
}
472+
473+
func hasNext() -> Bool {
474+
return cur < vals.count
475+
}
476+
477+
private func inorder(_ root: TreeNode?) {
478+
guard let node = root else {
479+
return
480+
}
481+
inorder(node.left)
482+
vals.append(node.val)
483+
inorder(node.right)
484+
}
485+
}
486+
```
487+
434488
<!-- tabs:end -->
435489

436490
<!-- solution:end -->
Collapse file
+49Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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 BSTIterator {
24+
private var cur = 0
25+
private var vals = [Int]()
26+
27+
init(_ root: TreeNode?) {
28+
inorder(root)
29+
}
30+
31+
func next() -> Int {
32+
let value = vals[cur]
33+
cur += 1
34+
return value
35+
}
36+
37+
func hasNext() -> Bool {
38+
return cur < vals.count
39+
}
40+
41+
private func inorder(_ root: TreeNode?) {
42+
guard let node = root else {
43+
return
44+
}
45+
inorder(node.left)
46+
vals.append(node.val)
47+
inorder(node.right)
48+
}
49+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.