判断给定序列是否为二叉数的后序遍历序列
二叉树有良好定义,后序遍历序列,其最后一个节点是所在序列的根节点
如2 ,6,4,9,12,10,7
比7小的数是对应的左子树节点,大于7的是右子树节点
这样就能有递归方式判断整个序列是否为二叉树的后序遍历序列
首先找到比根节点小的所有数,记录位置,遍历该位置及其后除根节点的所有数,如果有小于根节点数的返回false,因为该位置及其后数是该根节点的右子树,根据二叉树的性质都要大于根节点的值
然后判断是否还要继续递归,判断的依据是,如果记录的位置大于0则说明有左子树,进行判断
如果记录的位置小于根节点位置(length - 1),说明有右子树,递归
其中要说明的是,length是要处理的节点值的个数
所以判断右子树时要做相应处理
整体流程如下