从前序与中序遍历序列构造二叉树
重建二叉树
http://www.nowcoder.com/questionTerminal/8a19cbe657394eeaac2f6ea9b0f6fcf6
Python解法:
前序遍历pre:中左右;中序遍历tin: 左中右
这个出错的点在于:
如果pre为空的时候,应该直接return None而不是return TreeNode(None)
class Solution: # 返回构造的TreeNode根节点 def reConstructBinaryTree(self, pre, tin): # write code here # pre:中左右;tin: 左中右 if len(pre) == 0: return None node = TreeNode(pre[0]) index = tin.index(pre[0]) node.left = self.reConstructBinaryTree(pre[1:index + 1], tin[:index]) node.right = self.reConstructBinaryTree(pre[index + 1:], tin[index + 1:]) return node