二叉树的循环遍历和递归遍历
备注:以下代码均采用c++实现。

递归遍历
前序遍历:根、左、右
// 前序遍历:根、左、右
void beforeOrder(TreeNode* root, vector<int>& before){
// 终止条件
if(root == NULL){
return;
}
// 放入当前节点
before.push_back(root->val);
// 放入左子节点
beforeOrder(root->left, before);
// 放入右子节点
beforeOrder(root->right, before);
}
中序遍历:左、跟、右
// 中序遍历:左、根、右
void middleOrder(TreeNode* root, vector<int>& middle){
// 终止条件
if(root == NULL){
return;
}
// 放入左子节点
middleOrder(root->left, middle);
// 放入当前节点
middle.push_back(root->val);
// 放入右子节点
middleOrder(root->right, middle);
}
后序遍历:左、右、跟
// 后序遍历:左、右、根
void afterOrder(TreeNode* root, vector<int>& after){
// 终止条件
if(root == NULL){
return;
}</

本文介绍了二叉树的递归与循环遍历方法,包括前序、中序和后序遍历,并提供了C++实现代码。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



