diff --git "a/lcof/\351\235\242\350\257\225\351\242\23028. \345\257\271\347\247\260\347\232\204\344\272\214\345\217\211\346\240\221/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23028. \345\257\271\347\247\260\347\232\204\344\272\214\345\217\211\346\240\221/README.md" index dd282178ab3b..7fa857a54af0 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23028. \345\257\271\347\247\260\347\232\204\344\272\214\345\217\211\346\240\221/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23028. \345\257\271\347\247\260\347\232\204\344\272\214\345\217\211\346\240\221/README.md" @@ -308,6 +308,38 @@ public class Solution { } ``` +#### Swift + +```swift +/* public class TreeNode { +* var val: Int +* var left: TreeNode? +* var right: TreeNode? +* init(_ val: Int) { +* self.val = val +* self.left = nil +* self.right = nil +* } +* } +*/ + +class Solution { + func isSymmetric(_ root: TreeNode?) -> Bool { + return dfs(root, root) + } + + private func dfs(_ a: TreeNode?, _ b: TreeNode?) -> Bool { + if a == nil && b == nil { + return true + } + if a == nil || b == nil || a!.val != b!.val { + return false + } + return dfs(a!.left, b!.right) && dfs(a!.right, b!.left) + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23028. \345\257\271\347\247\260\347\232\204\344\272\214\345\217\211\346\240\221/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23028. \345\257\271\347\247\260\347\232\204\344\272\214\345\217\211\346\240\221/Solution.swift" new file mode 100644 index 000000000000..de72c564a70e --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23028. \345\257\271\347\247\260\347\232\204\344\272\214\345\217\211\346\240\221/Solution.swift" @@ -0,0 +1,27 @@ +/* public class TreeNode { +* var val: Int +* var left: TreeNode? +* var right: TreeNode? +* init(_ val: Int) { +* self.val = val +* self.left = nil +* self.right = nil +* } +* } +*/ + +class Solution { + func isSymmetric(_ root: TreeNode?) -> Bool { + return dfs(root, root) + } + + private func dfs(_ a: TreeNode?, _ b: TreeNode?) -> Bool { + if a == nil && b == nil { + return true + } + if a == nil || b == nil || a!.val != b!.val { + return false + } + return dfs(a!.left, b!.right) && dfs(a!.right, b!.left) + } +} \ No newline at end of file