1、自顶向下(前序遍历)

你能确定一些参数,从该节点自身解决出发寻找答案吗?
你可以使用这些参数和节点本身的值来决定什么应该是传递给它子节点的参数吗?

如果是则采用自顶向下的解决方案

private int answer;      // don't forget to initialize answer before call maximum_depth
private void maximum_depth(TreeNode root, int depth) {if (root == null) {return;}if (root.left == null && root.right == null) {answer = Math.max(answer, depth);}maximum_depth(root.left, depth + 1);maximum_depth(root.right, depth + 1);
}

2、自底向上(后序遍历)

对于树中的任意一个节点,如果你知道它子节点的答案,你能计算出该节点的答案吗? 如果答案是肯定的,那么 “自底向上” 的递归可能是一个不错的解决方法。

public int maximum_depth(TreeNode root) {if (root == null) {return 0;                                   // return 0 for null node}int left_depth = maximum_depth(root.left);int right_depth = maximum_depth(root.right);return Math.max(left_depth, right_depth) + 1;   // return depth of the subtree rooted at root
}

树的递归思维:自顶向下、自底向上相关推荐

  1. 归并排序及其优化(数组归并/链表归并,自顶向下/自底向上等)

      归并排序时一种使用分治思想实现的高效的排序算法,它的最好/最坏/平均时间复杂度都是O(nlogn),而且是一种稳定的排序算法.然而归并排序并没有得到广泛的应用,今天我们来看看归并排序的特点.优化和 ...

  2. 递归和动态规划的一个区别(递归是自顶向下,然后返回计算;动态规划是自低向上运算)

    1看到介绍递归比较好的文章,链接如下: https://blog.csdn.net/sinat_38052999/article/details/73303111 参考自:https://www.do ...

  3. 2018南京网络赛 G. Lpl and Energy-saving Lamps (线段树非递归实现)

    线段树非递归实现.点修改下的区间查询. 注意预处理的时候要把一到十万的都进行处理一遍,因为输入的月份不一定在月份的个数之内. #include <iostream> #include &l ...

  4. 机器学习 KD树_递归_回溯_搜索(matlab实现)

    文章目录 思路 效果 待优化 代码 mian Kd_Tree_Create recursive Kd_Tree_Search Kd_Tree_Recall_Search 思路 第一个版本:链接 KD树 ...

  5. 机器学习 KD树_递归搜索(matlab实现)

    文章目录 思路 效果 代码 mian Kd_Tree_Create recursive Kd_Tree_Search 思路 第二个版本:链接 KD树基本思路: 建立KD树(Kd_Tree_Create ...

  6. LeetCode——树:递归

    LeetCode--树:递归 目录 概述 树的高度(LeetCode104) 平衡树(LeetCode110) 两节点的最长路径(LeetCode543) 翻转树(LeetCode226) 归并两棵树 ...

  7. Python Turtle画分形树理解递归

    递归思想 递归可以把一个复杂问题转化为一个与原问题相似的规模较小的问题,通过自己调用自己,找到最终解决这个问题的条件,达到判断条件时返回. 通过分形树理解递归 Python中的 turtle画图很方便 ...

  8. 关于树的递归问题的一些总结

    树的一些常见的递归 树的递归问题在面试的过程中也是比较常见,下面对最近刷题过程中遇到的一些树的递归问题进行一个小小的总结,以后随着刷题量的增加,还是会继续在本博客中添加新的内容. 对称树问题:这是一个 ...

  9. 矩阵链乘法 自顶向下 自底向上 Python 实现 算法导论

    算法导论 矩阵链乘法 自顶向下 自底向上 Python 实现 带备忘的自顶向下实现方式 def Memoized_Matrix_chain(p):n = len(p)m = [[0 for i in ...

  10. 树的递归与非递归遍历算法

    树的递归与非递归遍历算法 树的递归与非递归遍历算法 树的遍历 实例 树遍历的口诀 树的递归遍历代码 树的先序遍历 树的中序遍历 树的后序遍历 递归遍历思想 树的非递归遍历 树的先序非递归遍历 先序遍历 ...

最新文章

  1. Rocksdb 的优秀代码(二)-- 工业级 打点系统 实现分享
  2. APK瘦身记,怎样实现高达53%的压缩效果
  3. 真实而震撼:同班同学20年后,身价15亿与月薪5000元的区别
  4. 业务配置开发平台qMISPlat 2.0 产品介绍
  5. 本地方法(JNI)——调用 java 方法
  6. 吸烟致癌的迷思是如何破除的?
  7. VGA、DVI、HDMI区别
  8. httplistener java_Java监听器Listener使用详解
  9. Vs2010创建WebService
  10. 5-2 持久化的作用/5-3 RDB1/5-4 RDB2/5-5 RDB3
  11. 位图切割器位图裁剪器
  12. EasyRecovery注册码哪里有?
  13. CC2430 CC2530 AD转换分辨率之“争”
  14. 100人PJ?へへ。バージョン1.0の反省書を書かなければなりません、今日。
  15. 刀片服务器如何选择操作系统,刀片服务器如何选择操作系统?
  16. 剑指Offer LeetCode 面试题58 - II. 左旋转字符串
  17. 广告中的DSP、SSP和ADX
  18. 半导体器件物理【20】PN结 —— 费米能级与电流关系、接触电势差
  19. sdutacm-cyk追楠神系列一
  20. Redis key过期监听

热门文章

  1. android启动序列帧动画,关于 Lottie 动画的说明及应用
  2. Unity_手机上查看日志的插件LogViewer
  3. ass字幕转换成文本文件
  4. day31管家婆项目训练笔记
  5. Fall 2020 Berkeley cs61a hw02答案
  6. ruby入门_loop
  7. java递归遍历文件夹下所有文件
  8. 大淘客php源码美化版,【完整包】大淘客cms升级源码v12221 大淘客二次开发源码 - 下载 - 搜珍网...
  9. 链路聚合的介绍以及配置
  10. Java运行时常量池