括号表示法创建二叉树
时间: 2023-12-13 11:31:19 浏览: 277
括号表示法是一种二叉树的表示方法,可以通过该方法创建一棵二叉树。具体步骤如下:
1. 创建一个空栈,用于存储节点。
2. 从左到右遍历括号表示法中的每个字符,如果当前字符是左括号,则创建一个新节点,并将其作为上一个节点的左子节点或右子节点,具体取决于上一个节点的状态。然后将该节点入栈。
3. 如果当前字符是右括号,则弹出栈顶节点,并将其作为上一个节点的右子节点。如果栈为空,则说明已经遍历完整棵树。
4. 重复步骤2和3,直到遍历完整个括号表示法。
下面是一个Python实现的例子:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def createTree(s):
stack = []
root = None
for c in s:
if c == '(':
if root:
node = TreeNode()
if not root.left:
root.left = node
else:
root.right = node
stack.append(root)
root = node
else:
root = TreeNode()
stack.append(root)
elif c == ')':
if stack:
root = stack.pop()
else:
root.val = int(c)
return root
# 示例
s = "(1(2(4)(5))(3(6)))"
root = createTree(s)
print(root.val) # 输出:1
```
阅读全文