美文网首页
打印二叉树所有路径

打印二叉树所有路径

作者: Fallune立白 | 来源:发表于2017-08-23 11:15 被阅读0次

    问题:打印二叉树的所有从根节点到叶子节点的路径。

    思路:使用递归分别遍历左子树,然后遍历右子树,使用栈来存储路径上的每一个节点,到达叶子节点时候打印路径各个节点的data。然后,出栈,也就是回到上一层,继续遍历右子树。


    void path3(Tree* root)

    {

    if(root == NULL)

    {

    return;

    }

    stack[top++] = root->data;

    if(root->lch == NULL && root->rch == NULL)

    {

    for(int i = 0 ;i<top;i++)

    {

    printf("%c",stack[i]);

    }

    printf("\n");

    return;

    }

    if(root->lch)

    {

    path3(root->lch);

    top--;

    }

    if(root->rch)

    {

    path3(root->rch);

    top--;

    }

    相关文章

      网友评论

          本文标题:打印二叉树所有路径

          本文链接:https://www.haomeiwen.com/subject/emlddxtx.html