#LeetCode:226. Invert Binary Tree

灆洢 2020-06-01 19:40:55

這題想要將給予的二元樹中,所有節點的左右子樹通通互換過來。

先遞迴將根節點的左右子樹中的所有節點的左右子樹互相交換,接著再將根節點的左右子樹交換即可得解。

Kotlin(144ms)

/*******************************************************
 * LeetCode 226. Invert Binary Tree                    *
 * Author: Maplewing [at] knightzone.studio            *
 * Version: 2020/06/01                                 *
 *******************************************************/
/**
 * 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? {
        if (root == null) return null

        val temp = root.left
        root.left = invertTree(root.right)
        root.right = invertTree(temp)

        return root
    }
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料