在该篇中,我们主要写树的中序遍历,因为树的前中后遍历大致相同,我们都是采用递归算法,如果树根不为空,访问左子树,如果左子树为空将其保存到数组中,并访问右子树,其主要代码为,其中v为数组
void zhong(vector<int> &v, TreeNode * root) {
if (root != NULL) {
zhong(v, root->left);/访问左子树
v.push_back(root->val);
zhong(v, root->right);/访问右子树
}
}
vector<int> inorderTraversal(TreeNode * root) {
vector<int> v;
zhong(v, root);
return v;
}
void zhong(vector<int> &v, TreeNode * root) {
if (root != NULL) {
zhong(v, root->left);/访问左子树
v.push_back(root->val);
zhong(v, root->right);/访问右子树
}
}
vector<int> inorderTraversal(TreeNode * root) {
vector<int> v;
zhong(v, root);
return v;
}