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

admin2014-12-08  28

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

选项

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

解析 本题主要考查后序遍历过程及特点。
转载请注明原文地址:https://kaotiyun.com/show/8dxi777K
0

最新回复(0)