Binary Tree 遍历
递归实现
简单介绍:
先序遍历:对一棵二叉树的前序遍历,先访问根结点,再访问左子树,然后访问右子树。
void preorder(Treenode *p) {
if (p != NULL){
visit(p); // visit泛指要对节点进行的操作
preorder(p->left);
preorder(p->right);
}
}
中序遍历:对一棵二叉树的中序遍历,先访问左子树,再访问根结点,然后访问右子树。
void inorder(Treenode *p) {
if (p != NULL){
inorder(p->left);
visit(p); // visit泛指要对节点进行的操作
inorder(p->right);
}
}
后序遍历:对一棵二叉树的后序遍历,先访问左子树,再访问右子树,然后访问根结点。
void postorder(Treenode *p) {
if (p != NULL){
postorder(p->left);
postorder(p->right);
visit(p); // visit泛指要对节点进行的操作
}
}