剑指offer系列之17:二叉树的镜像

来源:互联网 发布:手机sql注入 编辑:程序博客网 时间:2024/05/22 00:52

问题描述:完成一个函数,输入一个二叉树,该函数输出它的镜像。

思路:解决这样问题的时候,可以通过画图来让抽象的问题具体化,前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点,当交换完所有非叶子结点的子节点后,就得到了树的镜像。以下是使用递归的方式完成的,还可以使用非递归的方式完成。

/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    public void Mirror(TreeNode root) {        if(root == null || (root.left == null && root.right == null)){            return;        }        TreeNode temp = root.left;        root.left = root.right;        root.right = temp;        if(root.left != null){            Mirror(root.left);        }        if(root.right != null){            Mirror(root.right);        }    }}
0 0
原创粉丝点击