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) 感谢力扣爸爸 :)