面试题27. 二叉树的镜像

2020-02-13  本文已影响0人  阿星啊阿星

面试题27. 二叉树的镜像

题目描述

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

例如输入:


镜像输出:



示例:

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


提示:
0 <= 节点个数 <= 1000

转载来源:力扣(LeetCode


题目分析

这题是给出了二叉树的根节点,要翻转二叉树,其实很简单,只要将每个节点的左右孩子交换就好,然后再交换孩子的左右孩子,直到孩子的孩子的...为空,差不多就是递归遍历了一遍二叉树,代码直接贴在下面:

/**
 * Example:
 * var ti = TreeNode(5)
 * var v = ti.`val`
 * Definition for a binary tree node.
 * class TreeNode(var `val`: Int) {
 *     var left: TreeNode? = null
 *     var right: TreeNode? = null
 * }
 */
class Solution {
    fun mirrorTree(root: TreeNode?): TreeNode? {
        if (root == null)
            return null
        val tmp = root.left
        root.left = mirrorTree(root.right)
        root.right = mirrorTree(tmp)
        return root
    }
}

代码文件


不知道为什么Kotlin下面要108ms 在Java下面0ms
上一篇下一篇

猜你喜欢

热点阅读