使用栈非递归实现二叉树前序遍历时,若希望先访问左子树,通常应先将右孩子入栈,再将左孩子入栈。
A:正确
B:错误
正确答案:正确
答案解析
前序遍历的访问顺序是根节点、左子树、右子树。使用栈模拟时,需保证下一次出栈的节点为当前应访问节点的后续节点。若当前处理节点有左右孩子,为使左子树在右子树之前被访问,必须先将右孩子入栈,再将左孩子入栈。因为栈具有后进先出特性,后入栈的左孩子会先于右孩子出栈,从而满足先访问左子树的要求。节点入栈顺序直接影响出栈处理顺序,该顺序由程序逻辑决定,不依赖递归调用机制。
试卷来源:202606 CCF-GESP编程能力等级认证Python六级真题