查找结点p和q的最近公共祖先 非递归


思路

分别找到p、q到达根结点的路径,这两条路径的最后一个相同结点就是最近公共祖先
而后序遍历的非递归算法可以保留结点的所有祖先结点(即到根结点的路径),所以使用后序遍历的非递归算法具体实现

后序遍历的非递归算法

1、若结点不为空或者栈不为空,则继续执行以下步骤
2、若结点不为空,一直找左子树
3、(结点为空)若栈不为空,并且结点的右子树被访问,退栈
4、(结点为空)若栈不为空,并且结点的右子树未被访问,标记右子树被访问,且访问右子树


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM