用python构建二叉树
时间: 2023-07-12 11:30:32 浏览: 81
好的,下面是 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
def insert(root, val):
if root is None:
return Node(val)
else:
if root.val < val:
root.right = insert(root.right, val)
else:
root.left = insert(root.left, val)
return root
def inorder_traversal(root):
if root:
inorder_traversal(root.left)
print(root.val)
inorder_traversal(root.right)
root = Node(5)
root = insert(root, 3)
root = insert(root, 7)
root = insert(root, 1)
root = insert(root, 9)
inorder_traversal(root)
```
在上面的代码中,我们首先定义了一个名为 Node 的类来表示二叉树的节点。然后,我们定义了一个名为“insert”的函数来将新值插入到树中。最后,我们定义了一个名为“inorder_traversal”的函数来对树进行中序遍历并输出节点值。我们通过创建一个根节点并调用 insert 函数来创建树,然后使用 inorder_traversal 函数来遍历树。
用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` 来设置二级节点的左右子树。
当然,这只是一个简单的示例,实际上,我们可以根据具体的需求来创建任意形状的二叉树。
阅读全文
相关推荐
















