news 2026/10/7 8:10:57

二叉树の递归遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二叉树の递归遍历

学习一下卡哥的递归思路

原帖:二叉树的递归遍历 | 递归 | 二叉树遍历 | 代码随想录-全网最全算法数据结构刷题学习路线|图文+视频教程|免费开源

每次写递归,都按照这三要素来写

  • 确定递归函数的参数和返回值

确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明 确每次递归的返回值是什么进而确定递归函数的返回类型。

  • 确定终止条件

写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写 的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作 系统的内存栈必然就会溢出。

  • 确定单层递归的逻辑

确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。

以前序遍历为列子

1、确定递归函数的参数和返回值

应该是传入一个节点,然后把节点的值存入一个容器

所以我们有两个输入,没有

2、确定终止条件

就是遍历到空的节点了就终止

3、确定单层递归的逻辑

对于前序遍历,保证中左右的顺序,显示中间的值存入,然后去到左子树,左子树处理 完后去到右子树。

class Solution { public: void traversal(TreeNode* cur, vector<int>& vec) { if (cur == NULL) return; vec.push_back(cur->val); // 中 traversal(cur->left, vec); // 左 traversal(cur->right, vec); // 右 } vector<int> preorderTraversal(TreeNode* root) { vector<int> result; traversal(root, result); return result; } };

以此类推可得中序和后序

void traversal(TreeNode* cur, vector<int>& vec) { if (cur == NULL) return; traversal(cur->left, vec); // 左 vec.push_back(cur->val); // 中 traversal(cur->right, vec); // 右 }
void traversal(TreeNode* cur, vector<int>& vec) { if (cur == NULL) return; traversal(cur->left, vec); // 左 traversal(cur->right, vec); // 右 vec.push_back(cur->val); // 中 }

熟悉上述递归操作后就可以完成LeetCode.144/145/94 前后中序的题目。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 8:08:49

可穿戴健康数据指标体系拆解:从50项原始指标到3个可读分数

本文要处理的问题&#xff1a;把五十多项原始生理指标&#xff0c;收敛成用户能读懂、且长期稳定的少数几个分数。一、问题&#xff1a;指标越多&#xff0c;用户越不读可穿戴设备采集能力的提升&#xff0c;并不自动带来使用率的提升。以一款主打夜间监测的指戴设备为例。它的…

作者头像 李华
网站建设 2026/10/7 8:08:04

5款AI写论文哪个好?先分清“骨架层”与“表皮层”——云智变AI 云智变AI官网www.yunzhibian.cn 微信公众号搜一搜 云智变ai学术

你在搜索框里敲下“5款AI写论文哪个好”&#xff0c;脑子里想的可能是“哪个工具生成的文字最像论文”。但真正决定一篇论文能不能过盲审的&#xff0c;不是句子好不好看&#xff0c;是论证有没有闭环。工具选错了层面&#xff0c;写出来的东西再流畅&#xff0c;导师一句“逻辑…

作者头像 李华
网站建设 2026/10/7 8:07:11

联想电脑故障排查与日常维护全攻略(2026年10月更新)

更新时间&#xff1a;2026年10月 适用设备&#xff1a;联想全系笔记本、轻薄本、游戏本、二合一平板设备 一、前言 联想电脑凭借性能均衡、轻薄实用的特点&#xff0c;广泛应用于办公、学习及日常娱乐场景。设备长期使用后&#xff0c;容易出现蓝屏死机、无法开机、续航下降、系…

作者头像 李华
网站建设 2026/10/7 8:07:00

第13篇-能力评估算法下-储能空调充电桩可调容量

能力评估算法(下):储能 / 空调 / 充电桩可调容量 文章目录 能力评估算法(下):储能 / 空调 / 充电桩可调容量 引言:三类资源,三种"约束语言" 一、储能:功率约束与能量约束必须同时满足 1.1 任务可行性判定:不可行要返回缺口,不能截断 SOC 假装可行 1.2 恒功…

作者头像 李华