[劍指offer]8. 二叉樹的鏡像

題目連接:戳這裏
題目描述:請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。
例如輸入:
1.png
鏡像輸出:
2.png
解題思路;採用遞歸思路,依次往下翻轉鏡像。
java代碼:java

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode mirrorTree(TreeNode root) {
        TreeNode ans=root;
        if(root==null){
            return null;
        }else{
            return reverse(root);
        }
    }
        public TreeNode reverse(TreeNode root){
        TreeNode tmp=null;
        if(root.left!=null&&root.right!=null){
            tmp=root.left;
            root.left=root.right;
            root.right=tmp;
            reverse(root.left);
            reverse(root.right);
        }else if(root.left==null&&root.right!=null){
            root.left=root.right;
            root.right=null;
            reverse(root.left);
        }else if(root.left!=null&&root.right==null){
            root.right=root.left;
            root.left=null;
            reverse(root.right);
        }
            return root;
    }
}
相關文章
相關標籤/搜索