Problem From.
https://leetcode.com/problems/invert-binary-tree/
오늘 문제는 트리가 주어졌을때, 그 트리의 좌우를 뒤집는 문제였다.
처음에는 BFS 로 풀수 있겠다고 생각했는데, 저번에 풀었던 tree 의 max depth 를 구하는 문제가 생각나서 응용하여 풀 수 있었다.
/**
* 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 invertTree(root: TreeNode?): TreeNode? = root?.apply {
val (l, r) = Pair(left, right)
left = invertTree(r)
right = invertTree(l)
}
}