程序员社区

剑指Offer系列(java版,详细解析)27.二叉树的镜像

题目描述

请完成一个函数,输入一颗二叉树,请函数输出它的镜像。二叉树节点的定义如下:

public class BinaryTreeNode {
    double value;
    BinaryTreeNode left;
    BinaryTreeNode right;
}

剑指 Offer 27. 二叉树的镜像

难度简单118

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

例如输入:

   4
  /  \
 2   7
 / \  / \
1  3 6  9

镜像输出:

     4
   /   \
  7     2
 / \   / \
9   6 3   1

示例 1:

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

测试用例

  • 功能测试(普通的二叉树;二叉树的所有节点都没有左子树或者右子树;只有一个节点的二叉树)
  • 特殊输入测试(二叉树的根节点为空指针)

题目考点

  • 考察应聘者对二叉树的理解。
  • 考察应聘者的思维能力,可以通过画图使问题形象化。

解题思路

我们递归交换左右节点即可。

class Solution {
   
    public TreeNode mirrorTree(TreeNode root) {
   
        if(root==null)
            return root;
        TreeNode tmp = root.left;
        root.left = mirrorTree(root.right);
        root.right = mirrorTree(tmp);
        return root;
    }
}

补充

思路比代码更重要,所以在写代码之前一定要先想请思路。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 剑指Offer系列(java版,详细解析)27.二叉树的镜像

一个分享Java & Python知识的社区