feat: add swift implementation to lcp problem: No.67 (#4026)

This commit is contained in:
Lanre Adedara 2025-02-05 10:11:32 +01:00 committed by GitHub
parent b901bf832b
commit c29963f881
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 76 additions and 0 deletions

View File

@ -197,6 +197,46 @@ func expandBinaryTree(root *TreeNode) *TreeNode {
}
```
#### 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 {
func expandBinaryTree(_ root: TreeNode?) -> TreeNode? {
return dfs(root)
}
private func dfs(_ root: TreeNode?) -> TreeNode? {
guard let root = root else { return nil }
let leftChild = dfs(root.left)
let rightChild = dfs(root.right)
if let leftChild = leftChild {
root.left = TreeNode(-1, leftChild, nil)
}
if let rightChild = rightChild {
root.right = TreeNode(-1, nil, rightChild)
}
return root
}
}
```
<!-- tabs:end -->
<!-- solution:end -->

View File

@ -0,0 +1,36 @@
/* 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 {
func expandBinaryTree(_ root: TreeNode?) -> TreeNode? {
return dfs(root)
}
private func dfs(_ root: TreeNode?) -> TreeNode? {
guard let root = root else { return nil }
let leftChild = dfs(root.left)
let rightChild = dfs(root.right)
if let leftChild = leftChild {
root.left = TreeNode(-1, leftChild, nil)
}
if let rightChild = rightChild {
root.right = TreeNode(-1, nil, rightChild)
}
return root
}
}