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 5c82aa3

Browse files
feat: add swift implementation to lcci problem: No.04.06 (doocs#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‎

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

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

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

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