二叉树的前序、中序、后序遍历
- 前序遍历:先输出根节点,然后遍历左子树,最后遍历右子树
- 中序遍历:先遍历左子树,然后输出根节点,最后遍历右子树
- 后序遍历:先遍历左子树,然后遍历右子树,最后输出根节点
前中后所指的就是根节点所在的位置,即什么时候输出
下面是代码部分
//树的部分 struct TreeNode { int data; TreeNode *left; TreeNode *right; }; //前序遍历 void PreOrder(TreeNode *node) { if(node != NULL) { printf("%d\n",node->data); PreOrder(node->left); PreOrder(node->right); } else return ; } //中序遍历 void InOrder(TreeNode *node) { if(node != NULL) { InOrder(node->left); printf("%d\n",node->data); InOrder(node->right); } else return ; } //后序遍历 void PostOrder(TreeNode *node) { if(node != NULL) { PostOrder(node->left); PostOrder(node->right); printf("%d\n",node->data); } else return; }