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

admin2014-12-08  47

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

选项

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

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

最新回复(0)