Skip to content

Commit ea51bd3

Browse files
authored
feat: add swift implementation to lcof2 problem: No.053 (doocs#3068)
1 parent c14f248 commit ea51bd3

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

lcof2/剑指 Offer II 053. 二叉搜索树中的中序后继/README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,49 @@ function inorderSuccessor(root: TreeNode | null, p: TreeNode | null): TreeNode |
207207
}
208208
```
209209

210+
#### Swift
211+
212+
```swift
213+
/* class TreeNode {
214+
* var val: Int
215+
* var left: TreeNode?
216+
* var right: TreeNode?
217+
* init() {
218+
* self.val = 0
219+
* self.left = nil
220+
* self.right = nil
221+
* }
222+
* init(_ val: Int) {
223+
* self.val = val
224+
* self.left = nil
225+
* self.right = nil
226+
* }
227+
* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
228+
* self.val = val
229+
* self.left = left
230+
* self.right = right
231+
* }
232+
* }
233+
*/
234+
235+
236+
class Solution {
237+
func inorderSuccessor(_ root: TreeNode?, _ p: TreeNode?) -> TreeNode? {
238+
var root = root
239+
var ans: TreeNode? = nil
240+
while root != nil {
241+
if root!.val > p!.val {
242+
ans = root
243+
root = root!.left
244+
} else {
245+
root = root!.right
246+
}
247+
}
248+
return ans
249+
}
250+
}
251+
```
252+
210253
<!-- tabs:end -->
211254

212255
<!-- solution:end -->
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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+
24+
class Solution {
25+
func inorderSuccessor(_ root: TreeNode?, _ p: TreeNode?) -> TreeNode? {
26+
var root = root
27+
var ans: TreeNode? = nil
28+
while root != nil {
29+
if root!.val > p!.val {
30+
ans = root
31+
root = root!.left
32+
} else {
33+
root = root!.right
34+
}
35+
}
36+
return ans
37+
}
38+
}

0 commit comments

Comments
 (0)