From 4c61f2edd2bc4a07e3cdd68e1abe298c961f81a2 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 10 Jun 2024 07:24:08 +0100 Subject: [PATCH 1/2] feat: add swift implementation to lcof2 problem: No.054 --- .../README.md" | 45 +++++++++++++++++++ .../Solution.swift" | 0 2 files changed, 45 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/Solution.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/README.md" index b3bb91480d1d8..b67f283d92b8b 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/README.md" @@ -317,6 +317,51 @@ var convertBST = function (root) { }; ``` +#### Swift + +```swift +/* class TreeNode { +* var val: Int +* var left: TreeNode? +* var right: TreeNode? +* init() { +* self.val = 0 +* self.left = nil +* self.right = nil +* } +* init(_ val: Int) { +* self.val = val +* self.left = nil +* self.right = nil +* } +* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) { +* self.val = val +* self.left = left +* self.right = right +* } +* } +*/ + +class Solution { + private var s = 0 + + func convertBST(_ root: TreeNode?) -> TreeNode? { + dfs(root) + return root + } + + private func dfs(_ root: TreeNode?) { + guard let node = root else { + return + } + dfs(node.right) + s += node.val + node.val = s + dfs(node.left) + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/Solution.swift" new file mode 100644 index 0000000000000..e69de29bb2d1d From 2b45f38e4c5076872c5f2856e8135ffc76f24b65 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 10 Jun 2024 07:26:10 +0100 Subject: [PATCH 2/2] feat: add swift implementation to lcof2 problem: No.054 --- .../Solution.swift" | 40 +++++++++++++++++++ .../Solution.swift" | 0 2 files changed, 40 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 055. \344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\277\255\344\273\243\345\231\250/Solution.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/Solution.swift" index e69de29bb2d1d..672f0abfde6b6 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/Solution.swift" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 054. \346\211\200\346\234\211\345\244\247\344\272\216\347\255\211\344\272\216\350\212\202\347\202\271\347\232\204\345\200\274\344\271\213\345\222\214/Solution.swift" @@ -0,0 +1,40 @@ +/* class TreeNode { +* var val: Int +* var left: TreeNode? +* var right: TreeNode? +* init() { +* self.val = 0 +* self.left = nil +* self.right = nil +* } +* init(_ val: Int) { +* self.val = val +* self.left = nil +* self.right = nil +* } +* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) { +* self.val = val +* self.left = left +* self.right = right +* } +* } +*/ + +class Solution { + private var s = 0 + + func convertBST(_ root: TreeNode?) -> TreeNode? { + dfs(root) + return root + } + + private func dfs(_ root: TreeNode?) { + guard let node = root else { + return + } + dfs(node.right) + s += node.val + node.val = s + dfs(node.left) + } +} \ No newline at end of file diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 055. \344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\277\255\344\273\243\345\231\250/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 055. \344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\277\255\344\273\243\345\231\250/Solution.swift" new file mode 100644 index 0000000000000..e69de29bb2d1d