Skip to content

Commit b2923ee

Browse files
authored
feat: add swift implementation to lcof problem: No.28 (doocs#2895)
1 parent cd82966 commit b2923ee

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

lcof/面试题28. 对称的二叉树/README.md

+32
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,38 @@ public class Solution {
308308
}
309309
```
310310

311+
#### Swift
312+
313+
```swift
314+
/* public class TreeNode {
315+
* var val: Int
316+
* var left: TreeNode?
317+
* var right: TreeNode?
318+
* init(_ val: Int) {
319+
* self.val = val
320+
* self.left = nil
321+
* self.right = nil
322+
* }
323+
* }
324+
*/
325+
326+
class Solution {
327+
func isSymmetric(_ root: TreeNode?) -> Bool {
328+
return dfs(root, root)
329+
}
330+
331+
private func dfs(_ a: TreeNode?, _ b: TreeNode?) -> Bool {
332+
if a == nil && b == nil {
333+
return true
334+
}
335+
if a == nil || b == nil || a!.val != b!.val {
336+
return false
337+
}
338+
return dfs(a!.left, b!.right) && dfs(a!.right, b!.left)
339+
}
340+
}
341+
```
342+
311343
<!-- tabs:end -->
312344

313345
<!-- solution:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/* public class TreeNode {
2+
* var val: Int
3+
* var left: TreeNode?
4+
* var right: TreeNode?
5+
* init(_ val: Int) {
6+
* self.val = val
7+
* self.left = nil
8+
* self.right = nil
9+
* }
10+
* }
11+
*/
12+
13+
class Solution {
14+
func isSymmetric(_ root: TreeNode?) -> Bool {
15+
return dfs(root, root)
16+
}
17+
18+
private func dfs(_ a: TreeNode?, _ b: TreeNode?) -> Bool {
19+
if a == nil && b == nil {
20+
return true
21+
}
22+
if a == nil || b == nil || a!.val != b!.val {
23+
return false
24+
}
25+
return dfs(a!.left, b!.right) && dfs(a!.right, b!.left)
26+
}
27+
}

0 commit comments

Comments
 (0)