码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode105 Construct Binary Tree from Preorder and Inorder Traversal

时间:2020-02-02 23:34:00      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:The   二叉树   __init__   中序   style   比较   ret   obj   one   

 1 """
 2 For example, given
 3 preorder = [3,9,20,15,7]
 4 inorder = [9,3,15,20,7]
 5 Return the following binary tree:
 6     3
 7    /  8   9  20
 9     /  10    15   7
11 """
12 class TreeNode:
13     def __init__(self, x):
14         self.val = x
15         self.left = None
16         self.right = None
17 class Solution(object):
18     def buildTree(self, preorder, inorder):
19         if len(preorder) == 0:
20             return None
21         root_val = preorder[0]
22         root_index = inorder.index(root_val)
23         result = TreeNode(root_val)
24         left_preorder = preorder[1:root_index+1] #比如L=[5,3,6]
25         right_preorder = preorder[root_index+1:] #L[1:3] == [3,6]
26         left_inorder = inorder[:root_index]      #实际index是1,2
27         right_inorder = inorder[root_index+1:]
28         result.left = self.buildTree(left_preorder, left_inorder)  #递归
29         result.right = self.buildTree(right_preorder, right_inorder)
30         return result
31 """
32 常见的题,给出前序中序 求二叉树
33 leetcode106为给出中序后序 求二叉树,可相互比较
34 """

 

leetcode105 Construct Binary Tree from Preorder and Inorder Traversal

标签:The   二叉树   __init__   中序   style   比较   ret   obj   one   

原文地址:https://www.cnblogs.com/yawenw/p/12253989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!