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;
            
        }
    }
  • 相关阅读:
    Android 使用MediaPlayer 播放 视频
    Android加载asset的db
    MAC SVN 基本设置 终端命令
    AFNetWork 简单实用demo
    IntelliJ IDEA导出Java 可执行Jar包
    Xcode快速排错
    Listview多tab上滑悬浮
    N最短路径分词
    进程监控工具supervisor
    nginx配置指南
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11818521.html
Copyright © 2011-2022 走看看