Kotlin Leetcode - 226. Invert Binary Tree
class Solution {
fun invertTree(root: TreeNode?): TreeNode? {
}
}
解題思路
這一題考的是對樹的處理
算是很基礎的遞迴處理
- 如果 root 是 null,回傳 null
- 如果 root 不是 null
- 將所有的 left 改成 right 處理後的結果
- 將所有的 right 改成 left 處理後的結果
- 回傳 node
如果利用 scope function
可以在單一表達式內完成
Kotlin 參考解答
點擊展開解答
class Solution {
fun invertTree(root: TreeNode?): TreeNode? {
if(root == null) return null
val node = TreeNode(root.`val`)
node.left = invertTree(root.right)
node.right = invertTree(root.left)
return node
}
}
單一表達式內完成的方式如下
class Solution {
fun invertTree(root: TreeNode?): TreeNode? =
when (root) {
null -> null
else -> TreeNode(root.`val`).also {
it.left = invertTree(root.right)
it.right = invertTree(root.left)
}
}
}
- 回到 leetcode 列表
- 回到 Grind 75 列表