面试合集

IOS 算法(基础篇) ----- 二叉树的最大深度

2020-07-28  本文已影响0人  ShawnAlex

今天看到一道二叉树的简单算法题, 给大家分享一下

如果你想知道什么题? 既然你诚心诚意的发问了, 我就大发慈悲的告诉你!

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:
给定二叉树 [1,2,3,null,null,4,5],

    1
    / \
  2  3
      /  \
    4   5
返回它的最大深度 3 。
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     public var val: Int
 *     public var left: TreeNode?
 *     public var right: TreeNode?
 *     public init(_ val: Int) {
 *         self.val = val
 *         self.left = nil
 *         self.right = nil
 *     }
 * }
 */
    func maxDepth(_ root: TreeNode?) -> Int {
        guard let root = root else { return 0 }        
        return max(maxDepth(root.left) + 1, maxDepth(root.right) + 1)
    }
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     public var val: Int
 *     public var left: TreeNode?
 *     public var right: TreeNode?
 *     public init(_ val: Int) {
 *         self.val = val
 *         self.left = nil
 *         self.right = nil
 *     }
 * }
 */
    func maxDepth(_ root: TreeNode?) -> Int {
       guard let root = root else { return 0 }        
        let leftDepth = maxDepth(root.left)
        let rightDepth = maxDepth(root.right)
        return max(leftDepth, rightDepth) + 1
    }

题目来源:力扣(LeetCode) 感谢力扣爸爸 :)

IOS 算法合集地址

上一篇下一篇

猜你喜欢

热点阅读