力扣 初级算法 全套力扣精解

初级算法-树-二叉树的最大深度

2021-08-31  本文已影响0人  coenen
给定一个二叉树,找出其最大深度。

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

说明: 叶子节点是指没有子节点的节点。
摘一个示例做个说明.
示例:
    3
   / \
  9  20
    /  \
   15   7

给定二叉树 [3,9,20,null,null,15,7],
返回它的最大深度 3 。
条件分析:
  1. 二叉树根节点到叶子节点的最长路径 -> 需要知道最长的
解决思路1:
  1. 根据分析1说明需要采用递归遍历
采用递归调用,一直查找所有的子节点.直到所有的叶子结点结束
func maxDepth(_ root: TreeNode?) -> Int {
 if root == nil {
     return 0
 }

 let left = maxDepth(root?.left)
 let right = maxDepth(root?.right)
 return left > right ? left + 1 : right + 1
 }

测试用例:

// 二叉树
let tree = TreeNode()
tree.left = TreeNode()
tree.right = TreeNode()
tree.left?.right = TreeNode()
tree.left?.right?.left = TreeNode()
tree.right?.right = TreeNode()
// 二叉树
let tree = TreeNode()

考察要点:

上一篇下一篇

猜你喜欢

热点阅读