在二叉树中有两个结点m和n,若m是n的祖先,则使用后序遍历可以找到从m到n的路径

可作此图:

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210618200937761.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MTg4Ng==,size_16,color_FFFFFF,t_70#pic_center)
可见,此时m是n的祖先。
下面进行分析(圆球为输出)。

  1. 若使用先序遍历,即“根左右”,此时动作是:
    在这里插入图片描述

在n入栈前m已经出栈,无法确定路径。

  1. 若使用中序遍历,即“左根右”,此时动作是:
    在这里插入图片描述

在n入栈前m已经出栈,无法确定路径。

  1. 若使用中序遍历,即“左根右”,此时动作是:
    在这里插入图片描述

在n入栈后,m仍在栈中,且此时栈中有m、b、n,可见路径为m-b-n,路径找到。

posted @ 2021-06-18 20:18  鱼大鹿  阅读(1983)  评论(0)    收藏  举报