144、二叉树的前序递归遍历

题解:

递归书写三要素:

1)确定递归函数的参数和返回值。要确定每次递归所要用到的参数以及需要返回的值

2)确定终止条件。操作系统也是用栈的方式实现递归,那么如果不写终止条件或者终止条件写的不对,都会导致出现栈溢出的情况。

3)确定单层递归逻辑后再开始递归。

此题目中,因为要打印遍历后的节点值,所以递归函数需要传入vector来存放节点值,也不需要返回值。终止条件就是当传入节点为NULL时,单层逻辑是将传入的节点的值记录下来。

代码如下:

复制代码
class Solution {
public:
    void Traversal(TreeNode* cur, vector<int> &vec){
        if(NULL == cur)  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;
    }
};

注意:

1)vector容器的使用,放入元素:vec.push_back()

2)注意传递的参数设置,要修改哪些参数就要传入哪些参数。

相关推荐
MIngYaaa5208 小时前
The 6th Liaoning Provincial Collegiate Programming Contest - External 复盘
算法
CylMK8 小时前
题解:P11625 [迷宫寻路 Round 3] 迷宫寻路大赛
c++·数学·算法
计算机安禾8 小时前
【数据结构与算法】第44篇:堆(Heap)的实现
c语言·开发语言·数据结构·c++·算法·排序算法·图论
kaikaile19958 小时前
能量算子的MATLAB实现与详细算法
人工智能·算法·matlab
tankeven8 小时前
HJ175 小红的整数配对
c++·算法
Aaron15889 小时前
数字波束合成DBF与模拟波束合成ABF对比浅析
大数据·人工智能·算法·硬件架构·硬件工程·信息与通信·信号处理
成都易yisdong9 小时前
实现三北方向转换计算器(集成 WMM2025 地磁模型)
开发语言·windows·算法·c#·visual studio
汀、人工智能9 小时前
[特殊字符] 第91课:课程表
数据结构·算法·数据库架构·图论·bfs·课程表
wfbcg9 小时前
每日算法练习:LeetCode 36. 有效的数独 ✅
算法·leetcode·职场和发展
智者知已应修善业9 小时前
【51单片机非精准计时2个外部中断启停】2023-5-29
c++·经验分享·笔记·算法·51单片机