美文网首页
剑指 Offer II 044. 二叉树每层的最大值

剑指 Offer II 044. 二叉树每层的最大值

作者: 邦_ | 来源:发表于2022-06-15 09:14 被阅读0次

size是每层的节点数= =。。


func largestValues(_ root: TreeNode?) -> [Int] {

        if  root == nil {
            return []
        }
        
        var array = Array<TreeNode>()
        array.append(root!)
        var valueArray = Array<Int>()
        while !array.isEmpty {
            
            
            var size = array.count
            var maxValue = Int.min
            
            while size != 0 {
                let tempNode =  array.removeFirst()
                if tempNode.left != nil {
                    array.append(tempNode.left!)
                }
                if tempNode.right != nil {
                    array.append(tempNode.right!)
                }
                size -= 1
                maxValue = max(maxValue, tempNode.val)
            }

            valueArray.append(maxValue)
                
        }
        
      return valueArray
        
    }

不用双循环的算法= =. 但是吧。。看leetcode的AC 基本相差不多

 func largestValues(_ root: TreeNode?) -> [Int] {

        if  root == nil {
            return []
        }
        
        var array = Array<TreeNode>()
        array.append(root!)
        var valueArray = Array<Int>()
        var count = 1
        var maxValue = Int.min
        while !array.isEmpty {
            
            let tempNode = array.removeFirst()
            count -= 1
            maxValue = max(maxValue, tempNode.val)

            if let left =  tempNode.left {
                array.append(left)
            }
            if let right = tempNode.right {
                array.append(right)
            }
            if count == 0 {
                
                count = array.count
                valueArray.append(maxValue)
                maxValue = Int.min
            }
        }
        
      return valueArray
        
    }





相关文章

网友评论

      本文标题:剑指 Offer II 044. 二叉树每层的最大值

      本文链接:https://www.haomeiwen.com/subject/whlwertx.html