已知二叉树采用二叉链表方式存放,要求返回二叉树T的后序序列中的第一个结点的指针,是否可不用递归,且不用栈来完成?请简述原因。

admin2013-12-31  28

问题 已知二叉树采用二叉链表方式存放,要求返回二叉树T的后序序列中的第一个结点的指针,是否可不用递归,且不用栈来完成?请简述原因。

选项

答案可以。 原因:后序遍历的顺序是“左子树-右子树-根结点”。因此,二叉树最左下的叶子结点是遍历的第一个结点。下面的语句段说明了这一过程(设p是二叉树根结点的指针)。 if(p!=NULL){ while(p->ichild!=NULL||P->rchild!=NULL){ while(p->Ichild!=NULL)P:P->ichild; if(p->rchild!=NULL)P=P->rchild; } } return(p); //返回后序序列第一个结点的指针

解析
转载请注明原文地址:https://kaotiyun.com/show/7Sxi777K
0

最新回复(0)