剑指OfferJZ18:二叉树的深度-java版
JZ18:操作给定的二叉树,将其变换为源二叉树的镜像
- JZ18:操作给定的二叉树,将其变换为源二叉树的镜像
从下往上,对于有共同父节点的兄弟节点,将它们交换位置
在遍历二叉树的同时,以二叉树的层为单位,交换兄弟节点,直到第一层为止
使用后序遍历:先遍历当前节点的左孩子,接着遍历当前节点右孩子,最后遍历当前节点 流程: 1.遍历左孩子 2.遍历右孩子 3.遍历父节点 4.交换左孩子和右孩子
public class jz18 {
public void Mirror (TreeNode pRoot) {
if(pRoot!=null) {
// 遍历左孩子
if (pRoot.left != null) {
Mirror(pRoot.left);
}
//遍历右孩子
if (pRoot.right != null) {
Mirror(pRoot.right);
}
//交换pRoot节点的左右孩子
TreeNode temp = pRoot.left;
pRoot.left = pRoot.right;
pRoot.right = temp;
}
}
}