zoukankan      html  css  js  c++  java
  • 第104题:二叉树的最大深度

    一. 问题描述

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

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

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

    示例:

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

        3

        / 

       9   20

            / 

         15   7

    返回它的最大深度 3 。

    二. 解题思路

    本题思路:采用递归+广度优先搜索的方式进行求解。

    步骤一:构建递归函数(局部变量存储每一层的节点list)

    步骤二:依取list的值,将新的子节点的值添加到newlist中,并返回+1.

    步骤三:开始新的递归函数(newlist),直到newlist为空,则返回总计数。

    三. 执行结果

    执行用时 :1 ms, 在所有 java 提交中击败了90.50%的用户

    内存消耗 :36.5 MB, 在所有 java 提交中击败了66.10%的用户

    四. Java代码

    class Solution {
        public int maxDepth(TreeNode root) {
               if(root==null) {
           return 0;
       }
       List<TreeNode> list=new ArrayList<TreeNode>();
       list.add(root);
       int result=Tree(list);
       return result;
        }
         public int Tree(List<TreeNode> list) {
            if(list.size()==0) {
                return 0;
            }
            
            List<TreeNode> dataList=new ArrayList<TreeNode>();
            for(int i=0;i<list.size();i++) {
                TreeNode tempNode=list.get(i);
                if(tempNode.left!=null) {
                    dataList.add(tempNode.left);
                }
                if(tempNode.right!=null) {
                    dataList.add(tempNode.right);
                }
            }
            return Tree(dataList)+1;
            
        }
    }
  • 相关阅读:
    简单实用游标更改数据
    C# Http以文件的形式上传文件
    简单例子理解数据库事务
    安卓 隐藏按钮
    jQuery EasyUI API 中文文档
    Linux搭建Tomcat环境
    linux教程之一
    Android服务之PackageManagerService启动源码分析
    DSP、Media、AdExchanger之间的关系及交互流程
    Unity3D中的Coroutine具体解释
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11818521.html
Copyright © 2011-2022 走看看