添加 226.翻转二叉树 Swift版本

This commit is contained in:
极客学伟
2022-01-06 14:32:38 +08:00
parent c645af2b36
commit 871ae8f619

View File

@ -609,5 +609,43 @@ struct TreeNode* invertTree(struct TreeNode* root){
} }
``` ```
### Swift
```swift
// 前序遍历-递归
func invertTree(_ root: TreeNode?) -> TreeNode? {
guard let root = root else {
return root
}
let tmp = root.left
root.left = root.right
root.right = tmp
let _ = invertTree(root.left)
let _ = invertTree(root.right)
return root
}
// 层序遍历-迭代
func invertTree1(_ root: TreeNode?) -> TreeNode? {
guard let root = root else {
return nil
}
var queue = [TreeNode]()
queue.append(root)
while !queue.isEmpty {
let node = queue.removeFirst()
let tmp = node.left
node.left = node.right
node.right = tmp
if let left = node.left {
queue.append(left)
}
if let right = node.right {
queue.append(right)
}
}
return root
}
```
----------------------- -----------------------
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div> <div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>