二叉树遍历
递归遍历
前序遍历
class{
public:
void travelsal(TreeNode *cur, vector<int> &vec){
if(cur == NULL) return;
vec.push_back(cur->val);
travelsal(cur->left, vec);
travelsal(cur->right, vec);
}
vector<int> preorderTraversal(TreeNode *root){
vector<int> result;
travelsal(root, result);
return result;
}
}
中序遍历
void traversal(TreeNode* cur, vector<int>& vec) {
if (cur == NULL) return;
traversal(cur->left, vec); // 左
vec.push_back(cur->val); // 中
traversal(cur->right, vec); // 右
}
后续遍历
void traversal(TreeNode* cur, vector<int>& vec) {
if (cur == NULL) return;
traversal(cur->left, vec); // 左
traversal(cur->right, vec); // 右
vec.push_back(cur->val); // 中
}