美文网首页力扣 初级算法 全套力扣精解
初级算法-树-二叉树的最大深度

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

作者: coenen | 来源:发表于2021-08-31 07:20 被阅读0次
    给定一个二叉树,找出其最大深度。

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

    说明: 叶子节点是指没有子节点的节点。
    摘一个示例做个说明.
    示例:
        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()

    考察要点:

    • 深度搜索优先
    • 广度搜索优先
    • 二叉树

    相关文章

      网友评论

        本文标题:初级算法-树-二叉树的最大深度

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