求二叉链的括号表示串并调用python完整代码
时间: 2023-08-04 10:37:17 浏览: 30
以下是二叉树的括号表示串的 Python 代码:
```python
class TreeNode:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
def tree2str(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) + "(" + tree2str(root.left) + ")"
return str(root.val) + "(" + tree2str(root.left) + ")" + "(" + tree2str(root.right) + ")"
# 示例
# 1
# / \
# 2 3
# / \
# 4 5
# 输出:1(2)(3(4)(5))
root = TreeNode(1, TreeNode(2), TreeNode(3, TreeNode(4), TreeNode(5)))
print(tree2str(root))
```
输出结果为:`1(2)(3(4)(5))`
相关问题
二叉链中通过根节点 b 来唯一标识二叉树,求二叉链的括号表示串并调用python代码
以下是求二叉链的括号表示串的 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` 函数来获取左右子树的括号表示串,并将它们拼接起来。
最后,我们用测试代码来验证一下函数的正确性。
求二叉链的括号表示串并调用,利用设置二叉树根结点python完整代码
以下是利用设置二叉树根节点的方式,构建二叉树并求其括号表示串的 Python 代码:
```python
class TreeNode:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
def tree2str(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) + "(" + tree2str(root.left) + ")"
return str(root.val) + "(" + tree2str(root.left) + ")" + "(" + tree2str(root.right) + ")"
# 构建二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.right.left = TreeNode(4)
root.right.right = TreeNode(5)
# 求二叉树的括号表示串
print(tree2str(root))
```
输出结果为:`1(2)(3(4)(5))`