二叉树总结(四)

1.技巧描述

对于二叉树的问题,除了采用深度优先搜索和广度优先搜索外,还可以在这两个方法上做一些优化,比如预处理、用迭代代替递归、回溯。

  • 预处理:比如对要处理的数据提前做哈希映射,或者计算前缀和、后缀和,计算差分数组,构建前缀树,构建树状数组等等。

  • 用迭代代替递归:递归一般会有很多重复的计算过程,可以用迭代代替递归,从而提高效率。一般使用栈的方式来实现。

  • 回溯:通过特定的方式,回到上一层递归的状态。一般是删除集合最后一个元素,或者重置到原来的长度等等。

2.实战演练

本题使用了深度优先搜索的方法。对合并节点进行处理时,如果两者都不为空,新建一个节点,值为t1的值加上t2的值。

本题使用了预处理的技巧。通过对要处理的数据提前做哈希映射,从而快速找到根节点在中序序列的索引。

本题使用了深度优先搜索的方法。每次交换当前节点的左右子节点。

本题使用了迭代代替递归的技巧。通过栈来完成二叉树的中序遍历。

本题使用了回溯的技巧。通过删除集合的最后一个元素,从而回退到上一层节点的位置。

xqxls的题解 文章被收录于专栏

牛客题解

全部评论

相关推荐

一表renzha:你点进去没打招呼他也会有提示的,之前我点进美的,还没打招呼,他马上给我发了不太合适哦
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
鼠鼠没有找到暑期实习,简历太空了,感觉直接去秋招会完蛋,这个时间点找个日常实习混个简历,边实习边准备秋招有没有搞头啊
梦想是成为七海千秋:可以的完全可以的,找不到暑期就找日常,秋招之前还是有很多时间可以实习的,哪怕只实习了一个月都可以写在简历上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务