Skip to content

Commit 5c82aa3

Browse files
authored
feat: add swift implementation to lcci problem: No.04.06 (#2658)
1 parent 51fef98 commit 5c82aa3

File tree

3 files changed

+93
-0
lines changed

3 files changed

+93
-0
lines changed

lcci/04.06.Successor/README.md

+32
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,38 @@ var inorderSuccessor = function (root, p) {
202202
};
203203
```
204204

205+
```swift
206+
/* class TreeNode {
207+
* var val: Int
208+
* var left: TreeNode?
209+
* var right: TreeNode?
210+
*
211+
* init(_ val: Int) {
212+
* self.val = val
213+
* self.left = nil
214+
* self.right = nil
215+
* }
216+
* }
217+
*/
218+
219+
class Solution {
220+
func inorderSuccessor(_ root: TreeNode?, _ p: TreeNode?) -> TreeNode? {
221+
var current = root
222+
var successor: TreeNode? = nil
223+
224+
while let node = current {
225+
if node.val > p!.val {
226+
successor = node
227+
current = node.left
228+
} else {
229+
current = node.right
230+
}
231+
}
232+
return successor
233+
}
234+
}
235+
```
236+
205237
<!-- tabs:end -->
206238

207239
<!-- end -->

lcci/04.06.Successor/README_EN.md

+32
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,38 @@ var inorderSuccessor = function (root, p) {
221221
};
222222
```
223223

224+
```swift
225+
/* class TreeNode {
226+
* var val: Int
227+
* var left: TreeNode?
228+
* var right: TreeNode?
229+
*
230+
* init(_ val: Int) {
231+
* self.val = val
232+
* self.left = nil
233+
* self.right = nil
234+
* }
235+
* }
236+
*/
237+
238+
class Solution {
239+
func inorderSuccessor(_ root: TreeNode?, _ p: TreeNode?) -> TreeNode? {
240+
var current = root
241+
var successor: TreeNode? = nil
242+
243+
while let node = current {
244+
if node.val > p!.val {
245+
successor = node
246+
current = node.left
247+
} else {
248+
current = node.right
249+
}
250+
}
251+
return successor
252+
}
253+
}
254+
```
255+
224256
<!-- tabs:end -->
225257

226258
<!-- end -->

lcci/04.06.Successor/Solution.swift

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* class TreeNode {
2+
* var val: Int
3+
* var left: TreeNode?
4+
* var right: TreeNode?
5+
*
6+
* init(_ val: Int) {
7+
* self.val = val
8+
* self.left = nil
9+
* self.right = nil
10+
* }
11+
* }
12+
*/
13+
14+
class Solution {
15+
func inorderSuccessor(_ root: TreeNode?, _ p: TreeNode?) -> TreeNode? {
16+
var current = root
17+
var successor: TreeNode? = nil
18+
19+
while let node = current {
20+
if node.val > p!.val {
21+
successor = node
22+
current = node.left
23+
} else {
24+
current = node.right
25+
}
26+
}
27+
return successor
28+
}
29+
}

0 commit comments

Comments
 (0)