From 871ae8f6196114273320aa7db77817e6af559d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=81=E5=AE=A2=E5=AD=A6=E4=BC=9F?= Date: Thu, 6 Jan 2022 14:32:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20226.=E7=BF=BB=E8=BD=AC?= =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=20Swift=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0226.翻转二叉树.md | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/problems/0226.翻转二叉树.md b/problems/0226.翻转二叉树.md index ee1f5ddf..e6dbb709 100644 --- a/problems/0226.翻转二叉树.md +++ b/problems/0226.翻转二叉树.md @@ -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 +} +``` + -----------------------