zoukankan      html  css  js  c++  java
  • 二叉树的深度

    此博客链接:https://www.cnblogs.com/ping2yingshi/p/14102478.html

    二叉树的深度

    题目链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/submissions/

    题目

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

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

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

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

    3
    /
    9 20
    /
    15 7
    返回它的最大深度 3 。

    题解

    思路1:

            按照前面做过的前中后序遍历,可以进行层次遍历,然后判断层次遍历中有多少层,就可以计算出二叉树的深度是多少了。

    思路2:

          按照前面写的,也可以利用递归来实现计算二叉树的深度,这里主要说前序遍历的递归思想,先回忆一下前序遍历递归思想,先遍历根,在遍历左子树,然后遍历右子树,然后递归遍历左子树中的左右子树,右子树中的左右子树,在计算最大深度时,在返回根节点的最大深度时,是通过取左子树和右子树中较大深度的数加1则是根节点的最大深度。

    方法1:

    先写上层次遍历的模板,然后计算有多少层即为二叉树的最大深度。

    代码1

    class Solution {
        public int maxDepth(TreeNode root) {
            if(root==null)
            return 0;
           Queue <TreeNode> queue= new LinkedList<>();
            int count=0;
            queue.add(root);
            while(!queue.isEmpty()){
                int len=queue.size();
                while(len>0){
                    TreeNode temp=queue.poll();
                    if(temp.left!=null)
                         queue.add(temp.left);
                    if(temp.right!=null)
                         queue.add(temp.right);
                    len--;
                }
                count++;
    
            }
            return count;
    
    
        }
    }

    结果1

     

    方法2:

    先把树的前序遍历递归方法写上,通过修改代码,取左右子树中较大的值,并且加1作为返回结果。

    代码2

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

    结果2

          

  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/14102478.html
Copyright © 2011-2022 走看看