diff --git a/notes/剑指 offer 题解.md b/notes/剑指 offer 题解.md index 47d5d94e..5d9adbea 100644 --- a/notes/剑指 offer 题解.md +++ b/notes/剑指 offer 题解.md @@ -1298,6 +1298,7 @@ private boolean isSubtreeWithRoot(TreeNode root1, TreeNode root2) ## 解题思路 +### 递归 ```java public void Mirror(TreeNode root) { @@ -1316,6 +1317,28 @@ private void swap(TreeNode root) } ``` +### 迭代 +```java +public void Mirror(TreeNode root) { + if (root == null) + return; + Stack stack = new Stack<>(); + stack.push(root); + while (!stack.isEmpty()) { + TreeNode p = stack.pop(); + if (p.left == null && p.right == null) + continue; + TreeNode left = p.left; + p.left = p.right; + p.right = left; + if (p.left != null) + stack.push(p.left); + if (p.right != null) + stack.push(p.right); + } +} +``` + # 28 对称的二叉树 [NowCder](https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&tqId=11211&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking)