Skip to content

Commit d67f97d

Browse files
authored
Update 0106.从中序与后序遍历序列构造二叉树.md
105 and 106 python version of code added
1 parent cd3a60a commit d67f97d

File tree

1 file changed

+37
-3
lines changed

1 file changed

+37
-3
lines changed

problems/0106.从中序与后序遍历序列构造二叉树.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -618,8 +618,42 @@ class Solution {
618618
```
619619

620620
Python:
621-
622-
621+
105.从前序与中序遍历序列构造二叉树
622+
```python
623+
# Definition for a binary tree node.
624+
# class TreeNode:
625+
# def __init__(self, val=0, left=None, right=None):
626+
# self.val = val
627+
# self.left = left
628+
# self.right = right
629+
//递归法
630+
class Solution:
631+
def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
632+
if not preorder: return None //特殊情况
633+
root = TreeNode(preorder[0]) //新建父节点
634+
p=inorder.index(preorder[0]) //找到父节点在中序遍历的位置(因为没有重复的元素,才可以这样找)
635+
root.left = self.buildTree(preorder[1:p+1],inorder[:p]) //注意左节点时分割中序数组和前续数组的开闭环
636+
root.right = self.buildTree(preorder[p+1:],inorder[p+1:]) //分割中序数组和前续数组
637+
return root
638+
```
639+
106.从中序与后序遍历序列构造二叉树
640+
```python
641+
# Definition for a binary tree node.
642+
# class TreeNode:
643+
# def __init__(self, val=0, left=None, right=None):
644+
# self.val = val
645+
# self.left = left
646+
# self.right = right
647+
//递归法
648+
class Solution:
649+
def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode:
650+
if not postorder: return None //特殊情况
651+
root = TreeNode(postorder[-1]) //新建父节点
652+
p=inorder.index(postorder[-1]) //找到父节点在中序遍历的位置*因为没有重复的元素,才可以这样找
653+
root.left = self.buildTree(inorder[:p],postorder[:p]) //分割中序数组和后续数组
654+
root.right = self.buildTree(inorder[p+1:],postorder[p:-1]) //注意右节点时分割中序数组和后续数组的开闭环
655+
return root
656+
```
623657
Go:
624658

625659

@@ -643,4 +677,4 @@ var buildTree = function(inorder, postorder) {
643677
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
644678
* B站视频:[代码随想录](https://space.bilibili.com/525438321)
645679
* 知识星球:[代码随想录](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
646-
<div align="center"><img src=../pics/公众号.png width=450 alt=> </img></div>
680+
<div align="center"><img src=../pics/公众号.png width=450 alt=> </img></div>

0 commit comments

Comments
 (0)