题目:

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:
给定二叉树 [3,9,20,null,null,15,7],3/ \9  20/  \15   7
返回它的最大深度 3 。

解决方法一:

    public static int maxDepth(TreeNode root) {if (root == null) {return 0;}int depthLeft = 0,depthRight = 0;//左孩子if (root.left != null) {depthLeft = maxDepth(root.left);}//右孩子if (root.right != null) {depthRight = maxDepth(root.right);}// 加上自己的这一级别return 1 + Math.max(depthLeft,depthRight);}

解决方法二:

    public static int maxDepth2(TreeNode root) {if (root == null) {return 0;}LinkedList<Pair<TreeNode,Integer>> stack = new LinkedList<>();stack.offer(new Pair<>(root,1));int maxDep = 1;while (!stack.isEmpty()) {Pair<TreeNode, Integer> treeNodeIntegerPair = stack.pollLast();TreeNode key = treeNodeIntegerPair.getKey();Integer value = treeNodeIntegerPair.getValue();maxDep = Math.max(value,maxDep);if (key.left != null) {stack.offer(new Pair<>(key.left,value + 1));}if (key.right != null) {stack.offer(new Pair<>(key.right,value + 1));}}return maxDep;}

算法-----------计算二叉树的最大深度相关推荐

  1. 【每日一算法】二叉树的最大深度

    微信改版,加星标不迷路! 每日一算法-二叉树的最大深度 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径 ...

  2. 设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...

    (数据结构课程设计分类题目 线性表 顺序表: 1.设有一元素为整数的线性表L=(a1,a2,a3,-,an),存放在一维数组A[N]中,设计一个算法,以表中an作为参考元素,将该表分为左.右两部分,其 ...

  3. 计算二叉树的深度和宽度

    计算二叉树的最大深度和最大宽度 #include<stdio.h> #include<stdlib.h> #include<string.h> #define Ma ...

  4. 算法【二叉树】学习笔记 - 已知结点数计算可构建出多少种二叉树

    算法[二叉树]学习笔记 - 已知结点数计算可构建出多少种二叉树 卡特兰数 相关知识点 排列组合公式 排列 Arrangement 组合 Combination 分步计算 简化 参考资料 题目:已知3个 ...

  5. 二叉树常见算法题(单值二叉树、二叉树的最大深度、反转二叉树、判断两颗二叉树是否相同、对称二叉树、一颗二叉树是否是另一颗二叉树的子树)

    这里的代码都是递归实现的,再强调下二叉树的概念,二叉树的构成有两种情况: 1.空树 2.根节点 + 左子树 + 右子树(这里的左子树和右子树又是一颗二叉树) 可以看出二叉树就是递归定义的,下面的算法题 ...

  6. 二叉树遍历算法的应用——计算二叉树的深度、计算二叉树的节点总数、计算二叉树的叶子节点数(均采用递归的思想)

    //二叉树遍历算法的应用 //1.计算二叉树的深度 int Depth(BitTree T){if(T==NULL)return 0;//如果是空树,返回0else{m=Depth(T->lch ...

  7. 计算二叉树深度算法(递归、非递归)入门详解

    一.引言 二叉树在应用时,经常需要知道二叉树的深度.二叉树的深度就是二叉树的层数,即从树根算起,到最底下一层的层数是多少,即二叉树中结点的最大层次值. 本文给出了计算二叉树深度的算法,包括递归算法和非 ...

  8. 常考数据结构与算法:二叉树的最大深度

    题目描述 求给定二叉树的最大深度, 最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量. class TreeNode {int val;TreeNode left;TreeNode righ ...

  9. 算法_二叉树_二叉树的最大深度

    文章目录 二叉树的最大深度 1.两种解法 递归法--后序遍历 迭代法--层序遍历 2.总结 推荐题目 二叉树的最大深度 leetcode链接 1.两种解法 递归法–后序遍历 采用后序遍历,先处理左孩子 ...

最新文章

  1. Machine Learning——DAY1
  2. R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA)
  3. 学Android开发 这19个开发工具助你顺风顺水
  4. JSP标准标签库JSTL总结
  5. React开发(174):ant design按钮确认删除
  6. kido机器人没反应_机器人不能钩的三个英雄,章鱼妈上榜,钩中图四我方直接团灭!...
  7. Cisco路由器 VOIP 配置
  8. 离线安装NLTK工具包
  9. 耿丹16-1第一次作业
  10. android java程序中调用shell命令
  11. 人体识别_你知道人脸识别,但你知道人体识别吗?ReID技术了解一下!
  12. 超威主板关闭超线程教程
  13. sys matlab,matlab中sys什么意思
  14. Android使用有道翻译API实现在线翻译功能
  15. python程序设计,猜数游戏编程实践课程实验
  16. 必看!“隐形贫困人口”重疾险排名及投保建议
  17. Paper reading (九十一):Bifidobacterium breve Bif195 Protects Against Small-Intestinal Damage
  18. 单元节点和积分点有什么区别
  19. ubuntu下播放wav视频和mp3音频文件
  20. 记一次IOS与H5-SPA页面的交互经验

热门文章

  1. 打开 计算机 找不到桌面图标,电脑启动后桌面图标不见了怎么办 不显示图标解决办法...
  2. python处理视频动漫化_用Python实现抖音上的“人像动漫化”特效,原来这么简单...
  3. svd协同过滤java实现_利用 SVD 实现协同过滤推荐算法
  4. python经典题库和答案_吐血总结,Python经典面试题及答案
  5. GetWindowRect和GetClientRect的区别详解
  6. 串口调试助手c语言程序,串口调试助手C语言源程序
  7. socket通信时如何判断当前连接是否断开--select函数,心跳线程,QsocketNotifier监控socket...
  8. Python自动化开发学习13-堡垒机开发
  9. 死而复生?RethinkDB宣布进入Linux基金会!
  10. [20160910]低级错误.txt