打印二叉树所有路径

2017-08-23  本文已影响0人  Fallune立白

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

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

}

上一篇 下一篇

猜你喜欢

热点阅读