二叉树的深度

作者: youzhihua | 来源:发表于2020-02-29 10:31 被阅读0次

    题目描述

    输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

    示例

    给定二叉树 [3,9,20,null,null,15,7],
    
        3
       / \
      9  20
        /  \
       15   7
    返回它的最大深度 3 。
    

    思路

    1. 可以使用递归算法求解。
    2. 判断当前递归到的结点是否为null,若为null,返回0;否则返回其孩子的最大深度。

    Java代码实现

    public int maxDepth(TreeNode root) {
        if(root == null){
            return 0;
        }
        return Math.max(maxDepth(root.left),maxDepth(root.right))+1;
    }
    

    Golang代码实现

    func maxDepth(root *TreeNode) int {
        
        if root == nil{
            return 0
        }
        
        leftDepth := maxDepth(root.Left)
        rightDepth := maxDepth(root.Right)
        
        if leftDepth > rightDepth{
            return leftDepth+1
        }else{
            return rightDepth+1
        }
        
    }
    

    相关文章

      网友评论

        本文标题:二叉树的深度

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