以二叉链表作为二叉树的存储结构,编写交换二叉树每个结点的左孩子和右孩子的算法
时间: 2023-11-15 13:05:20 浏览: 137
编写算法交换二叉树中所有结点的左右子树.doc
5星 · 资源好评率100%
假设二叉树的二叉链表存储结构如下所示:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
```
可以使用递归的方式来实现交换二叉树的每个结点的左孩子和右孩子。具体的实现过程如下:
```python
def swapTree(root: TreeNode) -> TreeNode:
if not root:
return None
# 交换左右孩子
root.left, root.right = root.right, root.left
# 递归处理左右子树
swapTree(root.left)
swapTree(root.right)
return root
```
在上面的代码中,我们首先交换当前结点的左右孩子,然后递归处理左右子树。最后返回根节点即可。
阅读全文