二叉树基本操作:用先序序列创建一棵如下图所示的二叉树,并输出字符D位于二叉树的层数。
时间: 2024-01-23 18:14:07 浏览: 27
以下是使用先序序列创建二叉树的示例代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def buildTree(preorder):
if not preorder:
return None
root_val = preorder.pop(0)
if root_val == '#':
return None
root = TreeNode(root_val)
root.left = buildTree(preorder)
root.right = buildTree(preorder)
return root
def getDepth(root, target, depth=1):
if not root:
return 0
if root.val == target:
return depth
left_depth = getDepth(root.left, target, depth + 1)
if left_depth:
return left_depth
right_depth = getDepth(root.right, target, depth + 1)
if right_depth:
return right_depth
return 0
preorder = ['A', 'B', 'D', '#', '#', 'E', '#', '#', 'C', 'F', '#', '#', 'G', '#', '#']
root = buildTree(preorder)
target = 'D'
depth = getDepth(root, target)
print("Character", target, "is at depth", depth)
```
输出结果为:Character D is at depth 3