iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0

226 Invert Binary Tree

  • 翻轉二元樹(左右子樹交換)。
  • Kotlin, DFS
class TreeNode(var `val`: Int) {
    var left: TreeNode? = null
    var right: TreeNode? = null
}

fun invertTree(root: TreeNode?): TreeNode? {
    if (root == null) return null
    val tmp = root.left
    root.left = invertTree(root.right)
    root.right = invertTree(tmp)
    return root
}

  • follow up
    • 你會怎麼用 BFS(迭代)來做?
    • 如果樹是非常深(上萬層),遞迴會有 StackOverflow,怎麼處理?
    • 這題其實是 LeetCode 的經典 easy,但面試官可能會問你是否能在原地翻轉、空間複雜度是多少。
    • 如果二元樹是 n-ary tree,怎麼翻轉?

上一篇
#04
下一篇
#06
系列文
來都來了-涮就涮吧7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言