周游二叉树

前序遍历二叉树 代码:

// 方式一:
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());//遍历右节点)的顺序即可。

    原文作者:骑士周游问题
    原文地址: https://blog.csdn.net/Ding_Westbrook/article/details/83375647
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞