交换二叉树的左右子树的具体代码
时间: 2024-10-09 13:07:57 浏览: 40
erchashu.rar_交换 二叉树 左右子树_交换左右子树
5星 · 资源好评率100%
交换二叉树的左右子树操作通常涉及对每个节点的左孩子和右孩子进行互换。下面是一个简单的Python代码示例,假设我们有一个名为`Node`的二叉树节点类:
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def swap_left_right(node):
if node is not None:
# 临时存储当前节点的左孩子
temp_left = node.left
# 将当前节点的左孩子赋值给其右孩子
node.left = node.right
# 如果原来的右孩子存在,将其赋值给临时变量
if node.left:
node.left.right = temp_left
# 否则,如果原始的左孩子就是新的右孩子,不需要额外处理
else:
node.right = temp_left
# 递归地对新形成的左子树进行同样的操作
swap_left_right(node.left)
# 递归地对新形成的右子树进行同样的操作
swap_left_right(node.right)
# 示例用法
# 创建一个二叉树实例并进行交换操作
root = Node(1)
root.left = Node(2)
root.right = Node(3)
swap_left_right(root)
```
这个函数会遍历整个二叉树,对每一个非空节点的左右子节点进行互换。注意,这个操作改变了二叉树的结构,并且不是常规意义上的“交换”,而是实现了左右子树角色的互换。
阅读全文