翻转二叉树 python
时间: 2024-09-13 13:01:17 浏览: 40
python入门-leetcode面试题解之第226题翻转二叉树.zip
翻转二叉树是一个常见的编程问题,它要求将给定的二叉树中的所有节点的左子节点和右子节点交换位置。在Python中,可以通过递归的方式来实现这个操作。下面是一个简单的示例代码,展示了如何在Python中翻转一个二叉树:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def invertTree(root):
if root:
# 交换左右子节点
root.left, root.right = root.right, root.left
# 递归翻转左子树和右子树
invertTree(root.left)
invertTree(root.right)
return root
# 使用示例
# 创建一个简单的二叉树
# 1
# / \
# 2 3
# / \ / \
# 4 5 6 7
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
root.right.left = TreeNode(6)
root.right.right = TreeNode(7)
# 翻转这棵树
invertTree(root)
# 翻转后的树结构
# 1
# / \
# 3 2
# / \ / \
# 7 6 5 4
```
阅读全文