递归构建二叉树python
时间: 2023-07-07 12:42:53 浏览: 51
好的,下面是一个简单的递归构建二叉树的 Python 代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_tree(nodes):
"""
递归构建二叉树
:param nodes: List,按照二叉树层序遍历的顺序存储的节点列表,其中 None 表示该节点为空
:return: TreeNode,返回根节点
"""
if not nodes:
return None
root_val = nodes.pop(0)
if root_val is None:
return None
root = TreeNode(root_val)
root.left = build_tree(nodes)
root.right = build_tree(nodes)
return root
```
这个函数接受一个按照二叉树层序遍历的顺序存储的节点列表作为输入,其中 None 表示该节点为空,返回构建好的二叉树的根节点。函数首先弹出列表的第一个节点作为根节点的值,如果该值为 None,则返回 None,否则创建一个 TreeNode 对象作为根节点,然后递归构建左子树和右子树,最后返回根节点。