文章目录
题目
二叉搜索树的后序遍历序列
一、何为二叉搜索树?
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
二、思路
1.后序遍历的最后一个节点为根节点 2.左子树一定是小于根节点的所有值 3.右子树一定是大于根节点的所有值def verifyPostorder(postorder):
if not postorder:
return True
root = postorder[-1]
i = 0
while i < len(postorder):
if postorder[i] < root:
i += 1
else:
break
left = postorder[:i]
right = postorder[i:-1]
for j in right:
if j < root:
return False
return verifyPostorder(left) and verifyPostorder(right)