实现二叉树左右子树交换 求代码
时间: 2023-10-30 11:08:12 浏览: 87
二叉树的左右子树交换(C++)
5星 · 资源好评率100%
下面是实现二叉树左右子树交换的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: TreeNode) -> TreeNode:
if not root:
return None
root.left, root.right = root.right, root.left
invertTree(root.left)
invertTree(root.right)
return root
```
以上代码中,我们定义了一个 `TreeNode` 类来表示二叉树的节点。其中包含 `val` 表示节点的值,`left` 表示左子树,`right` 表示右子树。我们还定义了一个 `invertTree` 函数来实现二叉树左右子树交换的功能。该函数使用递归的方式来交换每个节点的左右子树。具体来说,我们先交换当前节点的左右子树,然后递归交换左子树和右子树。最后返回根节点。
注意,以上代码中 `root.left, root.right = root.right, root.left` 这行代码使用了Python的一种特殊语法,可以同时交换两个变量的值。如果不熟悉这种语法,可以将其分解为两行代码来理解:
```python
temp = root.left
root.left = root.right
root.right = temp
```
阅读全文