建立二叉树时,若子树不为空,则输入的数据是整型数据,若子树为空,输入为null,该怎么写程序建立二叉树
时间: 2024-11-04 13:10:35 浏览: 0
C语言实现输入一颗二元查找树并将该树转换为它的镜像
在使用递归的方式构建二叉树时,通常可以定义一个节点类(Node)和一个函数来创建树。这里是一个基本的Python示例:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_binary_tree(data_list):
if not data_list: # 如果列表为空,表示到达叶子节点,返回None
return None
root_val = data_list.pop(0) # 提取根节点的值
root = TreeNode(root_val)
if len(data_list) > 0: # 子树非空,继续构建左子树
root.left = build_binary_tree(data_list)
if len(data_list) > 1: # 子树非空,继续构建右子树
root.right = build_binary_tree(data_list[1:]) # 注意这里是从下标1开始,因为已经处理了左子树
return root
```
这个`build_binary_tree`函数接受一个数据列表(例如从输入流读取的整数序列),通过不断取出并创建节点,然后递归地构造左右子树。当数据列表为空时,就停止递归,返回当前节点。
阅读全文