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

admin2013-09-16  38

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

选项

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

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

最新回复(0)