打印二叉树所有路径

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

思路:使用递归分别遍历左子树,然后遍历右子树,使用栈来存储路径上的每一个节点,到达叶子节点时候打印路径各个节点的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--;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容