【数据结构与算法】根据遍历结果构建二叉树

来源:互联网 发布:淘宝优惠券怎么修改 编辑:程序博客网 时间:2024/05/22 13:23

对于普通的二叉树,已知遍历结果,如果想唯一确定二叉树,那么必须知道中根遍历,再加上先根后者后根的一种。

如果能够划分出序列中的左子树和右子树,那么就可以构建二叉树。知道先根或者后根,就可以知道根,然后再在中根遍历的结果中找出根,那么左边就是左子树,右边就是右子树。


对于BST,只需要知道先根或者后根就可以确定,或者说只需要知道根就可以确定,利用左子树比根小,右子树比根大的特性就可以划分。


有一个注意点,产生序列时,如果是int值而且是多位数,那么要用分隔符标记。

对于BST其实有一个时间更快的办法,就是把null节点也放在遍历结果中,最后直接递归处理就是bst,不需要进行值得比较了。

0 0