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

admin2012-06-26  48

问题 已知二叉树采用二叉链表方式存放,要求返回二叉树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://jikaoti.com/ti/flajFFFM
0

最新回复(0)