1. 题目形容:
给出一棵二叉树, 返回其中序遍历。
输出:二叉树 = {1,2,3}
输入:[2,1,3]
2. 解题思路:
递归法
首先咱们须要理解什么是二叉树的中序遍历:依照拜访左子树——根节点——右子树的形式遍历这棵树,而在拜访左子树或者右子树的时候咱们依照同样的形式遍历,直到遍历完整棵树。因而整个遍历过程人造具备递归的性质,咱们能够间接用递归函数来模仿这一过程。
3. 代码示例:
class Solution {
public:
void inorder(TreeNode* root, vector<int>& res) {if (!root) {return;}
inorder(root->left, res);
res.push_back(root->val);
inorder(root->right, res);
}
vector<int> inorderTraversal(TreeNode* root) {
vector<int> res;
inorder(root, res);
return res;
}
};