给定一个二叉树的根节点,返回他的中序遍历,要求树中节点在范围[0:100](请用Python代码作答)
时间: 2024-12-10 17:48:09 浏览: 9
在Python中,我们可以使用递归的方式来实现二叉树的中序遍历。对于给定范围在[0:100]的节点,我们会在遍历时检查每个节点的值是否在这个范围内,并只输出符合条件的节点。以下是相应的代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def inorder_traversal(root, min_val=0, max_val=100):
if root is None:
return []
# 中序遍历的顺序:左 -> 根 -> 右
result = inorder_traversal(root.left, min_val, max_val)
if root.val >= min_val and root.val <= max_val:
result.append(root.val) # 只有当节点值在范围内才添加
result += inorder_traversal(root.right, min_val, max_val)
return result
# 示例:
# 构建一个简单的二叉树,例如:4 -> 2 -> 6 -> 1 -> 3 -> 5
root = TreeNode(4)
root.left = TreeNode(2)
root.right = TreeNode(6)
root.left.left = TreeNode(1)
root.left.right = TreeNode(3)
root.right.right = TreeNode(5)
# 调用函数并打印结果
in_order_nodes = inorder_traversal(root)
print(in_order_nodes) # 输出:[1, 2, 3, 4, 5, 6]
```
阅读全文