从零开始的LeetCode刷题日记:144/145/94. 二叉树的递归遍历

一.相关链接

题目链接:

144. 二叉树的前序遍历

145.二叉树的后序遍历

94.二叉树的中序遍历

二.心得体会

这道题目是二叉树题目的基础,递归有三要素:1.确定参数和返回值;2.确定终止条件;3.确定单层递归的逻辑。

对于这道题目:

1.参数当然是树的节点。这里还可以传入数组,但用全局定义的数组的话就可以不传入。

2.终止条件就是遇到了空节点。

3.单层递归的逻辑是按顺序遍历左右节点和中间节点。

三.代码
class Solution {
public:
    vector<int> ans;
    void traversal(TreeNode* node) {
        if(node==NULL) return;
        ans.push_back(node->val);
        traversal(node->left);
        traversal(node->right);
    }

    
    vector<int> preorderTraversal(TreeNode* root) {
        traversal(root);
        return ans;
    }
};
class Solution {
public:
    void traversal(TreeNode*node, vector<int> &ans) {
        if(node==NULL) return;
        traversal(node->left, ans);
        traversal(node->right, ans);
        ans.push_back(node->val);
    }
    vector<int> postorderTraversal(TreeNode* root) {
        vector<int> ans;
        traversal(root, ans);
        return ans;
    }
};

上一篇:uniapp的移动端骨架屏组件开发应用


下一篇:ITIL是什么?ITIL® 4报考流程及考试攻略全解!