生成一个二叉树的代码吧
时间: 2023-05-16 21:04:33 浏览: 54
以下是生成二叉树的 Python 代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def buildTree(preorder, inorder):
if not preorder or not inorder:
return None
root_val = preorder.pop(0)
root = TreeNode(root_val)
inorder_index = inorder.index(root_val)
root.left = buildTree(preorder, inorder[:inorder_index])
root.right = buildTree(preorder, inorder[inorder_index+1:])
return root
preorder = [3,9,20,15,7]
inorder = [9,3,15,20,7]
root = buildTree(preorder, inorder)
```
这段代码可以根据前序遍历和中序遍历的结果生成一棵二叉树。
相关问题
生成一段二叉树代码
好的,以下是一个简单的二叉树代码示例:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_tree(arr):
if not arr:
return None
mid = len(arr) // 2
root = TreeNode(arr[mid])
root.left = build_tree(arr[:mid])
root.right = build_tree(arr[mid+1:])
return root
```
这段代码定义了一个二叉树节点类 `TreeNode` 和一个构建二叉树的函数 `build_tree`。在 `build_tree` 函数中,我们首先判断数组是否为空,如果为空则返回空节点。否则,我们找到当前数组的中间位置,将其作为根节点,然后递归构建左子树和右子树,最后返回根节点。
生成一个遍历二叉树的代码
生成遍历二叉树的代码可以用多种方式实现,下面是用递归实现的 Python 代码示例:
```
class TreeNode:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
def pre_order_traversal(root):
if not root:
return
print(root.val)
pre_order_traversal(root.left)
pre_order_traversal(root.right)
def in_order_traversal(root):
if not root:
return
in_order_traversal(root.left)
print(root.val)
in_order_traversal(root.right)
def post_order_traversal(root):
if not root:
return
post_order_traversal(root.left)
post_order_traversal(root.right)
print(root.val)
```
上面的代码实现了三种常见的二叉树遍历方法:前序遍历(pre_order_traversal),中序遍历(in_order_traversal)和后序遍历(post_order_traversal)。