以二叉链表作为二叉树的存储结构交换二叉树每个结点的左孩子和右孩子
时间: 2023-11-15 20:07:21 浏览: 106
交换二叉树中所有结点的左右子树
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 = invertTree(root.right), invertTree(root.left)
return root
```
以上代码中,我们定义了一个`TreeNode`类来表示二叉树的节点,其中`val`表示节点的值,`left`和`right`分别表示节点的左右孩子。`invertTree`函数接收一个二叉树的根节点作为参数,返回交换左右孩子后的二叉树的根节点。
在`invertTree`函数中,我们首先判断当前节点是否为空,如果为空则直接返回`None`。否则,我们交换当前节点的左右孩子,然后递归地交换当前节点的左右子树,并返回当前节点。
阅读全文