用python构建二叉树
时间: 2023-07-12 20:30:32 浏览: 80
好的,下面是 Python 代码实现构建二叉树的过程,同样是采用递归的方式:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def buildTree(nums: List[int]) -> TreeNode:
if not nums: # 递归结束条件
return None
mid = len(nums) // 2 # 中间节点下标
root = TreeNode(nums[mid]) # 构建根节点
root.left = buildTree(nums[:mid]) # 递归构建左子树
root.right = buildTree(nums[mid+1:]) # 递归构建右子树
return root
```
这里我们同样假设 `nums` 数组已经按照升序排好序了,所以我们选择了中间节点作为根节点。递归构建左子树时,我们将左半部分的数组传递给函数,递归构建右子树时,我们将右半部分的数组传递给函数。
相关问题
python建立二叉树
在Python中建立二叉树可以使用节点类的方式实现,例如:
``` python
class Node:
def __init__(self, val):
self.left = None
self.right = None
self.val = val
```
然后,我们可以使用递归的方式来构建二叉树,例如:
``` python
def build_tree(arr, root, i, n):
if i < n:
temp = Node(arr[i])
root = temp
root.left = build_tree(arr, root.left, 2 * i + 1, n)
root.right = build_tree(arr, root.right, 2 * i + 2, n)
return root
```
其中,arr是一个列表,表示二叉树的层序遍历结果,root是二叉树的根节点,i表示当前节点在列表中的索引,n表示列表的长度。
例如,我们可以使用以下代码来构建一个二叉树:
``` python
arr = [1, 2, 3, 4, 5, 6, 7]
root = None
root = build_tree(arr, root, 0, len(arr))
```
这样,就成功地构建了一个层序遍历为[1, 2, 3, 4, 5, 6, 7]的二叉树。
用Python创建二叉树
在 Python 中实现二叉树的一般方法是使用节点类来表示树中的每个节点。每个节点包含一个值、一个指向左子树的指针和一个指向右子树的指针。
下面是一个简单的二叉树节点类的实现:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
```
然后,我们可以通过创建节点实例来构建二叉树。例如,下面是一个创建二叉树的示例:
```python
# 1
# / \
# 2 3
# / \
# 4 5
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
```
在上面的示例中,我们首先创建了根节点 `root`,然后通过设置 `root.left` 和 `root.right` 来设置根节点的左右子树。然后,我们又通过设置 `root.left.left` 和 `root.left.right` 来设置二级节点的左右子树。
当然,这只是一个简单的示例,实际上,我们可以根据具体的需求来创建任意形状的二叉树。
阅读全文