C语言进阶练习二叉树的递归遍历的完整攻略如下:
一、前序遍历
前序遍历指的是先遍历根节点,再遍历左子树,最后遍历右子树。递归实现前序遍历的代码如下:
void preorderTraversal(TreeNode* root) {
if(root == NULL) return;
printf("%d ", root->val); // 先输出根节点的值
preorderTraversal(root->left); // 递归遍历左子树
preorderTraversal(root->right); // 递归遍历右子树
}
例如,对于如下的二叉树,其前序遍历结果应该为:1 2 4 5 3 6 7
1
/ \
2 3
/ \ / \
4 5 6 7
二、中序遍历
中序遍历指的是先遍历左子树,再遍历根节点,最后遍历右子树。递归实现中序遍历的代码如下:
void inorderTraversal(TreeNode* root) {
if(root == NULL) return;
inorderTraversal(root->left); // 递归遍历左子树
printf("%d ", root->val); // 输出根节点的值
inorderTraversal(root->right); // 递归遍历右子树
}
例如,对于如下的二叉树,其中序遍历结果应该为:4 2 5 1 6 3 7
1
/ \
2 3
/ \ / \
4 5 6 7
三、后序遍历
后序遍历指的是先遍历左子树,再遍历右子树,最后遍历根节点。递归实现后序遍历的代码如下:
void postorderTraversal(TreeNode* root) {
if(root == NULL) return;
postorderTraversal(root->left); // 递归遍历左子树
postorderTraversal(root->right); // 递归遍历右子树
printf("%d ", root->val); // 输出根节点的值
}
例如,对于如下的二叉树,其后序遍历结果应该为:4 5 2 6 7 3 1
1
/ \
2 3
/ \ / \
4 5 6 7
以上就是二叉树的递归遍历的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言进阶练习二叉树的递归遍历 - Python技术站