周游二叉树

前序遍历二叉树 代码:

// 方式一:
void RootNode(root){
    if(root == null) return;
    RootNode(root->letf()); //先遍历左节点
    visit(root);//遍历根节点
    RootNode(root->right());//遍历右节点

}
//方式二:
void RootNode(root){
    if(root->letf() != null)
    RootNode(root->letf()); //先遍历左节点
    visit(root);//遍历根节点
    if(root->right() != null)
    RootNode(root->right());//遍历右节点

}

方式一的效率比方式二的高 且保证传人空节点不报错 往往程序去判断节点为空非常费时间。同理可得中序遍历,后序遍历(

修改RootNode(root->letf()); //先遍历左节点
    visit(root);//遍历根节点
    RootNode(root->right());//遍历右节点)的顺序即可。

你可能感兴趣的:(数据结构和算法记录)