![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法(Java)
文章平均质量分 68
diamond_0
这个作者很懒,什么都没留下…
展开
-
二叉树相关算法(二)——遍历的应用
一、统计二叉树的最大宽度(按层遍历)1、使用map2、不使用map二、序列化与反序列化1、按层2、先/中/后三、打印二叉树(右中左)四、求前驱与后继中序五、折纸(先序遍历“虚拟二叉树”)...原创 2021-05-17 15:32:23 · 134 阅读 · 0 评论 -
二叉树相关算法(一)——二叉树的遍历
一、先/中/后序遍历(递归)递归方式会导致每个节点会经过三次,先序是在第一次经过节点时访问,中序是第二次经过节点时访问,后序是第三次经过节点时访问。其中较为特殊的是叶子节点,左孩子和右孩子都为空,访问空树时什么都不做就返回。public static void p(Node h) { if(h == null) return; else { System.out.print(h.val); //遍历左子树 p(h.left); //遍历右子树 p(h.right.原创 2021-03-06 23:42:21 · 205 阅读 · 0 评论 -
二叉树相关算法(三)——二叉树的递归套路
一、重要说明1、递归是一种思想,将这种思想落实到二叉树这种数据结果的相关运用上,使我更加了解递归的作用。2、以下所举的算法例子主要都是基于后续遍历的基础上实现的,即先遍历左子树,再遍历右子树,最后访问根节点,对于每一棵树都是如此。可以认为,递归方式可以从左/右子树上收集信息,从而在根节点处进行汇总。3、递归分为在递去的过程中解决问题以及在归来的过程中解决问题。因为我想要的信息是从底层往上给(可以是叶子节点,也可以是空节点-》结束/返回条件),所以是在归来的过程中解决问题。4、方法论:(可以指导对问.原创 2021-03-06 21:57:30 · 308 阅读 · 0 评论