剑指 Offer - 18 - 二叉树的镜像
题目
解析
这题算一个简单题了。
思路很简单,递归求解的过程:
- 先把当前根节点的左右子树换掉;
- 然后递归换自己的左右子树即可;
例子:
递归代码:
public class Solution {
public void Mirror(TreeNode root) {
if (root == null)
return;
TreeNode t = root.left;
root.left = root.right;
root.right = t;
Mirror(root.left);
Mirror(root.right);
}
}
非递归也可以,意思一样:
import java.util.Stack;
public class Solution {
public void Mirror(TreeNode root) {
if (root == null)
return;
Stack<TreeNode>stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()) {
TreeNode cur = stack.pop();
if (cur.left != null || cur.right != null) {
TreeNode t = cur.left;
cur.left = cur.right;
cur.right = t;
}
if (cur.left != null)
stack.push(cur.left);
if (cur.right != null)
stack.push(cur.right);
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论