题目分析:非递归实现对一颗树的中序遍历,可以用栈实现。
贴一下思路:
树根入栈;
while(栈不空)
{
if(栈顶节点有左儿子)
{
栈顶节点左儿子入栈;
原栈顶节点左儿子置空;
}
else if(栈顶节点有右儿子)
{
打印栈顶节点;
弹栈;
弹栈前的栈顶节点右儿子入栈;
}
else{
打印栈顶节点;
弹栈;
}
}
题目分析:非递归实现对一颗树的中序遍历,可以用栈实现。
贴一下思路:
树根入栈;
while(栈不空)
{
if(栈顶节点有左儿子)
{
栈顶节点左儿子入栈;
原栈顶节点左儿子置空;
}
else if(栈顶节点有右儿子)
{
打印栈顶节点;
弹栈;
弹栈前的栈顶节点右儿子入栈;
}
else{
打印栈顶节点;
弹栈;
}
}