获取二叉树的最大深度

2021-02-25  本文已影响0人  梁森的简书

思路

分别递归遍历根节点的左子树和右子树的最大深度,两者的最大值再加1就是二叉树的最大深度

代码

// 树的最大深度
    func maxDepth() -> Int {
        return maxDepth(node: root)
    }
    func maxDepth(node: TreeNode?) -> Int {
        if node == nil {
            return 0
        }
        var max = 0
        var maxL = 0
        var maxR = 0
        if node?.left != nil {
            maxL = maxDepth(node: node?.left)
        }
        if node?.right != nil {
            maxR = maxDepth(node: node?.right)
        }
        if maxL > maxR {
            max = maxL + 1
        } else {
            max = maxR + 1
        }
        return max
    }

demo地址:https://github.com/yangguanghei/studyDateStructure

上一篇 下一篇

猜你喜欢

热点阅读