zoukankan      html  css  js  c++  java
  • 力扣105. 从前序与中序遍历序列构造二叉树

    原题105

     1 class Solution:
     2     def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
     3         def helper(prebegin,preend,inbegin,inend):
     4             if prebegin > preend or inbegin > inend:return None
     5             root = TreeNode(preorder[prebegin])
     6             i = 0
     7             while i + inbegin < inend:
     8                 if inorder[i + inbegin] == preorder[prebegin]:
     9                     break
    10                 i += 1
    11             root.left = helper(prebegin+1,prebegin+i,inbegin,inbegin + i - 1)
    12             root.right = helper(prebegin + i + 1,preend,inbegin + i + 1,inend)
    13             return root
    14         return helper(0,len(preorder)-1,0,len(inorder)-1);

     原题106

     1 class Solution:
     2     def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode:
     3         def helper(postbegin,postend,inbegin,inend):
     4             if postbegin > postend or inbegin > inend:return None
     5             root = TreeNode(postorder[postend])
     6             i = 0
     7             while i + inbegin < inend:
     8                 if inorder[i + inbegin] == postorder[postend]:
     9                     break
    10                 i += 1
    11             root.left = helper(postbegin,postbegin+i-1,inbegin,inbegin + i - 1)
    12             root.right = helper(postbegin + i,postend-1,inbegin + i + 1,inend)
    13             return root
    14         return helper(0,len(postorder)-1,0,len(inorder)-1);
  • 相关阅读:
    暑假第二十七测
    暑假第二十七测
    【真题解】牛宫
    【伪题解】牛宫
    最优贸易
    跳马问题
    求和问题
    【题解】山区建小学
    OpenStack之虚机冷迁移代码简析
    OpenStack之虚机热迁移代码解析
  • 原文地址:https://www.cnblogs.com/deepspace/p/14334508.html
Copyright © 2011-2022 走看看