NO_9判断整数序列是不是二元查找树的后序遍历结果
2014-05-24 15:55
225 查看
题目博客:
http://blog.csdn.net/v_JULY_v/article/details/6057286
题目:
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。
如果是返回true,否则返回false。
例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:
8
/ /
6 10
/ / / /
5 7 9 11
因此返回true。
如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。
代码为:
http://blog.csdn.net/v_JULY_v/article/details/6057286
题目:
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。
如果是返回true,否则返回false。
例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:
8
/ /
6 10
/ / / /
5 7 9 11
因此返回true。
如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。
代码为:
#coding=utf-8 class TreeNode: def __init__(self,value,leftChild=None,rightChild=None): self.value=value self.leftChild,self.rightChild=leftChild,rightChild def IsCanTree(*inlist): if not inlist:#列表非空 return True root=inlist[-1]#最后一个肯定为根节点 leftChildlist=[]#左孩子节点比根节点小 gt_index=0 for index,value in enumerate(inlist): if value>=root: gt_index=index break else: leftChildlist.append(value) right_child_list=inlist[gt_index:-1] flag=True for gtvalue in right_child_list:#如果在右孩子节点找到比根节点小的节点。就说明不是前序遍历 if gtvalue<root: flag=False break if flag: if False in (IsCanTree(*leftChildlist),IsCanTree(*right_child_list)):#判断右孩子节点集,右孩子节点集符不符合前序遍历序列 flag=False return flag print IsCanTree(*[7,4,6,5])
相关文章推荐
- No9、判断整数序列是不是二元查找树的后序遍历结果
- 程序员面试题精选100题(06)-判断整数序列是不是二元查找树的后序遍历结果
- 数据结构面试题1.2.8-判断整数序列是不是二元查找树的后序遍历结果
- 程序员面试题精选100题(06)-判断整数序列是不是二元查找树的后序遍历结果
- 程序员面试100题之六,判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- MS100(9)-判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 【练习】判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 面试题:判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 剑指Offer 1367 判断整数序列是不是二元查找树的后序遍历结果
- 程序员面试题精选100题(06)-判断整数序列是不是二元查找树的后序遍历结果
- 【转载】判断整数序列是不是二元查找树的后序遍历结果