算法:二叉树镜像

问题:操作给定的二叉树,将其变换为源二叉树的镜像。

思路:采用递归的方法,
1:空二叉树直接return;定义节点temp;
2:判断节点为非空;借助temp执行根节点左右值的交换;
3: 判断根节点的左右节点非空,对节点进行递归;

package LG.nowcoder;

/**
 * @Author liguo
 * @Description 二叉树的镜像
 * @问题:操作给定的二叉树,将其变换为源二叉树的镜像。
 * @思路:采用递归的方法, 1:空二叉树直接return;定义节点temp;
 * 2:判断节点为非空;借助temp执行根节点左右值的交换;
 * 3: 判断根节点的左右节点非空,对节点进行递归;
 * @Data 2018-08-14 12:40
 */
public class Solution7 {
    public void Mirror(TreeNode root) {
        TreeNode temp;
        if (root == null) return;           //空二叉树直接return;
        if (root != null) {                  //断节点为非空;借助temp执行根节点左右值的交换;
            temp = root.right;
            root.right = root.left;
            root.left = temp;
        }
        //判断根节点的左右节点非空,对节点进行递归;
        if (root.left != null) Mirror( root.left );
        if (root.right != null) Mirror( root.right );
    }
}

猜你喜欢

转载自www.cnblogs.com/liguo-wang/p/9473978.html