题号: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); //最后右
}
};
提交结果
全文完
Comments NOTHING