二叉链中通过根节点 b 来唯一标识二叉树,求二叉链的括号表示串并调用python代码
时间: 2024-03-14 10:47:39 浏览: 14
以下是求二叉链的括号表示串的 Python 代码:
```python
class Node:
def __init__(self, val=None):
self.val = val
self.left = None
self.right = None
def tree_to_str(root):
if not root:
return ""
if not root.left and not root.right:
return str(root.val)
if not root.right:
return str(root.val) + "(" + tree_to_str(root.left) + ")"
return str(root.val) + "(" + tree_to_str(root.left) + ")(" + tree_to_str(root.right) + ")"
# 测试代码
root = Node('b')
root.left = Node('a')
root.right = Node('c')
root.right.left = Node('d')
root.right.right = Node('e')
print(tree_to_str(root)) # 输出:b(a)(c(d)(e))
```
其中,`Node` 是二叉树的节点类,`tree_to_str` 是将二叉树转换为括号表示串的函数。在函数中,我们首先判断根节点是否存在,若不存在则返回空串;接着判断根节点是否为叶子节点,若是则返回该节点的值;若根节点不为叶子节点,则我们递归地调用 `tree_to_str` 函数来获取左右子树的括号表示串,并将它们拼接起来。
最后,我们用测试代码来验证一下函数的正确性。