中序遍历二叉树,直接递归 左、根、右
注意在传参数时,先把结点传下去,再在下层函数调用中判断该结点是否为空和进行接下来的系列操作
/**
* Definition for a binary tree node.
* 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;
void inorder(TreeNode* root) {
if (!root) { //如果树空,直接返回
return;
}
// 如果树不空
inorder(root->left); //如果有左儿子
res.push_back(root->val);
inorder(root->right); //如果有有儿子
}
vector<int> inorderTraversal(TreeNode* root) {
inorder(root);
return res;
}
};