面试题27. 二叉树的镜像
题目描述
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
镜像输出:
示例:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
提示:
0 <= 节点个数 <= 1000
题目分析
这题是给出了二叉树的根节点,要翻转二叉树,其实很简单,只要将每个节点的左右孩子交换就好,然后再交换孩子的左右孩子,直到孩子的孩子的...为空,差不多就是递归遍历了一遍二叉树,代码直接贴在下面:
/**
* 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
网友评论