96SEO 2026-02-20 04:45 0
DFS算法是在树或者图这样的数据结构中常用的一种遍历算法。

这个算法会尽可能深的搜索树或者图的分支直到⼀条路径上的所有节点都被遍历完毕然后再回溯到上一层继续寻找另外一条路遍历。
简单来说DFS就是优先考虑深度换句话说就是一条路走到黑直到无路可走的情况下才会选择回头然后重新选择一条路。
在二叉树中常见的深度优先遍历有前序遍历、中序遍历以及后序遍历。
dfs(root)宏观思想--函数体返回左子树的布尔值返回右子树的布尔值根据当前根节点返回最终结果函数出口叶子节点根据叶子节点数值返回布尔类型值
evaluateTree(root.left);boolean
evaluateTree(root.right);return
递归的过程中我们需要传递上层以及本层节点数字之和preSum将上层以及本层节点数字之和preSum传递给当前根节点的左右子树返回左右子树数值之和函数出口叶子节点。
注意要先将叶子节点的数值注入总和之中再返回
思想后序遍历当根节点的左右子树的所有值均为0时才可删除当前树从叶子节点开始判断若其值为0则可删除可被删除的节点返回null父节点.left/right接收null修改其父节点的指向继续判断当前节点
pruneTree(root.left);root.right
pruneTree(root.right);if(root.left
Long.MIN_VALUE(记录上一个节点的值)中序遍历(将当前根节点依次和prev比较查看序列是否有序)需当前节点的左子树与右子树均满足二叉搜索树以及当前节点本身满足二叉搜索树才能说明该树为二叉搜索树若当前节点满足则更新prev的值为当前节点的val值若当前节点不满足则返回false再通过剪枝优化代码使函数提前终止并返回false。
ret中序遍历(通过有序序列查找目标值)因为中序遍历得到的是一个有序序列所以利用count计数计到第k个数时使用ret存入得到目标值后在通过剪枝优化函数使递归返回
return;dfs(root.left);count--;if(count
root.val;//剪枝return;}dfs(root.right);}
“恢复现场”注意本题不能使用全局变量path恢复现场因为本层路径的修改会影响到上一层。
解法使用局部变量(函数传参)path回溯到上一层时函数会自动“恢复现场”。
剪枝
StringBuffer(path_);path.append(root.val);if(root.left
{ret.add(path.toString());return;}path.append(-);//if
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback