LeetCode Day11:二叉树的中序遍历

发布于 2022-08-31  37 次阅读


题号:94
难度:Easy
链接:https://leetcode.cn/problems/binary-tree-inorder-traversal

思路

基础题,所谓中序遍历,即是先访问左子结点,再访问当前结点,最后访问右子结点。

递归写法比较清晰明了。

代码

#include <vector>

using std::vector;

struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

class Solution {
public:
    vector<int> res;
    vector<int> inorderTraversal(TreeNode* root) {
        tra(root);
        return res;
    }
    void tra(TreeNode* root){
        if(root==nullptr) return;
        tra(root->left); //先左
        res.insert(res.end(),root->val); //再当前结点
        tra(root->right); //最后右
    }
};

提交结果

LeetCode-Day11:二叉树的中序遍历-2022-08-31-08-36-01

全文完