mirror of https://github.com/doocs/leetcode.git
feat: add swift implementation to lcp problem: No.67 (#4026)
This commit is contained in:
parent
b901bf832b
commit
c29963f881
|
|
@ -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 -->
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue