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 0cfd4c6

Browse files
feat: add swift implementation to lcci problem: No.04.03 (doocs#2652)
1 parent 387fb1e commit 0cfd4c6

File tree

3 files changed

+165
-0
lines changed

3 files changed

+165
-0
lines changed

‎lcci/04.03.List of Depth/README.md‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,62 @@ impl Solution {
311311
}
312312
```
313313

314+
```swift
315+
/* class TreeNode {
316+
* var val: Int
317+
* var left: TreeNode?
318+
* var right: TreeNode?
319+
*
320+
* init(_ val: Int) {
321+
* self.val = val
322+
* self.left = nil
323+
* self.right = nil
324+
* }
325+
* }
326+
*/
327+
328+
/* class ListNode {
329+
* var val: Int
330+
* var next: ListNode?
331+
*
332+
* init(_ val: Int) {
333+
* self.val = val
334+
* self.next = nil
335+
* }
336+
* }
337+
*/
338+
339+
class Solution {
340+
func listOfDepth(_ tree: TreeNode?) -> [ListNode?] {
341+
var ans = [ListNode?]()
342+
guard let tree = tree else { return ans }
343+
344+
var q = [TreeNode]()
345+
q.append(tree)
346+
347+
while !q.isEmpty {
348+
let dummy = ListNode(0)
349+
var cur = dummy
350+
for _ in 0..<q.count {
351+
let node = q.removeFirst()
352+
cur.next = ListNode(node.val)
353+
cur = cur.next!
354+
355+
if let left = node.left {
356+
q.append(left)
357+
}
358+
if let right = node.right {
359+
q.append(right)
360+
}
361+
}
362+
ans.append(dummy.next)
363+
}
364+
365+
return ans
366+
}
367+
}
368+
```
369+
314370
<!-- tabs:end -->
315371

316372
<!-- end -->

‎lcci/04.03.List of Depth/README_EN.md‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,62 @@ impl Solution {
323323
}
324324
```
325325

326+
```swift
327+
/* class TreeNode {
328+
* var val: Int
329+
* var left: TreeNode?
330+
* var right: TreeNode?
331+
*
332+
* init(_ val: Int) {
333+
* self.val = val
334+
* self.left = nil
335+
* self.right = nil
336+
* }
337+
* }
338+
*/
339+
340+
/* class ListNode {
341+
* var val: Int
342+
* var next: ListNode?
343+
*
344+
* init(_ val: Int) {
345+
* self.val = val
346+
* self.next = nil
347+
* }
348+
* }
349+
*/
350+
351+
class Solution {
352+
func listOfDepth(_ tree: TreeNode?) -> [ListNode?] {
353+
var ans = [ListNode?]()
354+
guard let tree = tree else { return ans }
355+
356+
var q = [TreeNode]()
357+
q.append(tree)
358+
359+
while !q.isEmpty {
360+
let dummy = ListNode(0)
361+
var cur = dummy
362+
for _ in 0..<q.count {
363+
let node = q.removeFirst()
364+
cur.next = ListNode(node.val)
365+
cur = cur.next!
366+
367+
if let left = node.left {
368+
q.append(left)
369+
}
370+
if let right = node.right {
371+
q.append(right)
372+
}
373+
}
374+
ans.append(dummy.next)
375+
}
376+
377+
return ans
378+
}
379+
}
380+
```
381+
326382
<!-- tabs:end -->
327383

328384
<!-- end -->
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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 ListNode {
15+
* var val: Int
16+
* var next: ListNode?
17+
*
18+
* init(_ val: Int) {
19+
* self.val = val
20+
* self.next = nil
21+
* }
22+
* }
23+
*/
24+
25+
class Solution {
26+
func listOfDepth(_ tree: TreeNode?) -> [ListNode?] {
27+
var ans = [ListNode?]()
28+
guard let tree = tree else { return ans }
29+
30+
var q = [TreeNode]()
31+
q.append(tree)
32+
33+
while !q.isEmpty {
34+
let dummy = ListNode(0)
35+
var cur = dummy
36+
for _ in 0..<q.count {
37+
let node = q.removeFirst()
38+
cur.next = ListNode(node.val)
39+
cur = cur.next!
40+
41+
if let left = node.left {
42+
q.append(left)
43+
}
44+
if let right = node.right {
45+
q.append(right)
46+
}
47+
}
48+
ans.append(dummy.next)
49+
}
50+
51+
return ans
52+
}
53+
}

0 commit comments

Comments
(0)

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