前言
本专栏收录的均为牛客网的算法题目,内含链表、双指针、递归、动态规划、基本数据结构等算法思想的具体运用。牛客网不仅有大量的经典算法题目,也有大厂的面试真题,面试、找工作完全可以来这里找机会。此外,网站内的编码主题多样化,调试功能可运用性强,可谓是非常注重用户体验。这么好的免费刷题网站还不快入手吗,快去注册开启算法百炼成神之路吧!
使用 递归 实现,入门的难度,可以花少点时间挑战一下
题目链接:前中后序遍历
从示例中的返回值可以看出,题目要求最终返回一个 二维数组,那么就利用灵活的 vector 容器来解题:
先使用递归法写好三个序列的遍历序列
然后用三个一维 vector容器分别存放前、中、后的遍历序列
最后将三个一维容器插进一个二维 vector 容器中并返回
本题源码:
请联系客服获取
重要注释:
先、中、后序遍历的区别乍一看就是访问结点的顺序不同,但是如果去分析递归你会发现:
先序遍历:访问到一个结点后,先将值插入数组,然后往左右子树递归,不为空就插入数据,为空就停止递归。
中序遍历:一直往根结点的左子树递推,最先插入数据的一定是二叉树最左的一个结点,然后是根结点、右结点。
后序遍历:与中序类似,区别是插入最左边结点后,先处理右子树在处理根结点。
先序最好理解,像是一步步的顺序进行;而中序和后序都要先递推到最左的子树然后再回溯。
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者