二叉树的最大深度

作者: coder_flag | 来源:发表于2018-10-14 23:03 被阅读2次

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

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

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

    示例:
    给定二叉树 [3,9,20,null,null,15,7],

        3
       / \
      9  20
        /  \
       15   7
    

    返回它的最大深度 3 。


    解法1:

    思路: 思路很简单,使用递归的方法,往下搜索,直到最后左右儿子都为null。

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    
    class Solution {
        public int maxDepth(TreeNode root) {
            return root==null ? 0 :(1+ Math.max(maxDepth(root.left),maxDepth(root.right)));
        }
    }
    

    思考一下: 搜给定一个二叉树,找出其最小深度。

    解法:

    思路:使用递归,跟上面解法同一道理。

     public int minDepth(TreeNode root){
            if(root== null){
                return 0;
            }
            if(root.left==null && root.right==null){
                return 1;
            }
            if(root.left==null){
                return 1+Math.min(minDepth(root.right));
            }else if(root.right==null){
                return 1+Math.min(minDepth(root.left));
            }else{
                return 1+Math.min(minDepth(root.left),minDepth(root.right));
            }
        }
    }
    

    解法参考了这里 , 向大佬学习了,谢谢!!!

    相关文章

      网友评论

        本文标题:二叉树的最大深度

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