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)注意传递的参数设置,要修改哪些参数就要传入哪些参数。

相关推荐
苦藤新鸡7 小时前
19.旋转输出矩阵
c++·算法·leetcode·力扣
zsffuture7 小时前
RKNN 8位量化全解析:算法差异与粒度选择实战指南
算法
玄冥剑尊7 小时前
贪心算法深化 II
算法·贪心算法
Pluchon7 小时前
硅基计划4.0 算法 动态规划入门
java·数据结构·算法·动态规划
玄冥剑尊7 小时前
贪心算法深化 III
算法·贪心算法
wen__xvn7 小时前
算法刷题目录
算法
Tisfy7 小时前
LeetCode 1292.元素和小于等于阈值的正方形的最大边长:二维前缀和(无需二分)+抽象速懂的描述
算法·leetcode·职场和发展
ZPC82108 小时前
机械臂urdf
人工智能·算法
郝学胜-神的一滴8 小时前
Python对象的自省机制:深入探索对象的内心世界
开发语言·python·程序人生·算法
期待のcode8 小时前
浅堆深堆与支配树
java·jvm·算法