LeetCode - Find Largest Value in Each Tree Row

Find Largest Value in Each Tree Row - LeetCode

Solution

class Solution {
    func largestValues(_ root: TreeNode?) -> [Int] {
        var dict = [Int: [Int]]()
        traversing(root, 0, &dict)
        var result = [Int]()
        for key in dict.keys.sorted() {
            result.append(dict[key]!.max()!)
        }
        return result
    }
    
    func traversing(_ root: TreeNode?, _ deep: Int, _ dict: inout [Int: [Int]]) {
        guard let root = root else {
            return
        }
        if let array = dict[deep] {
            dict[deep] = array + [root.val]
        } else {
            dict[deep] = [root.val]
        }
        traversing(root.left, deep + 1, &dict)
        traversing(root.right, deep + 1, &dict)
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容