以二叉链表作为二叉树的存储结构,编写包含以下条件的完整算法: 1.统计二叉树的叶结点个数。 2.判别两棵树是否相等。 3.交换二叉树每个结点的左孩子和右孩子。 4.设计二叉树的双序遍历算法。
时间: 2024-05-16 16:14:45 浏览: 98
1. 统计二叉树的叶结点个数
```python
def count_leaves(root):
if not root:
return 0
if not root.left and not root.right:
return 1
return count_leaves(root.left) + count_leaves(root.right)
```
2. 判别两棵树是否相等
```python
def is_equal(tree1, tree2):
if not tree1 and not tree2:
return True
if not tree1 or not tree2:
return False
if tree1.data != tree2.data:
return False
return is_equal(tree1.left, tree2.left) and is_equal(tree1.right, tree2.right)
```
3. 交换二叉树每个结点的左孩子和右孩子
```python
def swap_left_right(root):
if not root:
return
root.left, root.right = root.right, root.left
swap_left_right(root.left)
swap_left_right(root.right)
```
4. 设计二叉树的双序遍历算法
```python
def double_order_traversal(root):
if not root:
return
print(root.data, end=' ')
double_order_traversal(root.left)
print(root.data, end=' ')
double_order_traversal(root.right)
```
阅读全文