[剑指 Offer 27. 二叉树的镜像|刷题打卡]

103 阅读1分钟

一、题目描述:

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

例如输入:

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] 引自:leetcode-cn.com/problems/er…

题目链接:剑指 Offer 27. 二叉树的镜像

二、思路分析:

  1. 借用临时变量记录根的左子树;
  2. 递归交换二叉树的左右子树。

三、AC 代码:

 class Solution {
    func mirrorTree(_ root: TreeNode?) -> TreeNode? {
        if (root == nil) {
            return root;
        }
        // 临时变量记录根的左子树
        var tempNode : TreeNode? = root?.left;
        // 递归交换二叉树的左右子树
        root?.left = mirrorTree(root?.right);
        root?.right = mirrorTree(tempNode);
        
        return root;
    }
}

四、参考学习网址

二叉树

本文正在参与「掘金 3 月闯关活动」, 点击查看 活动详情