l2-011 玩转二叉树 分数
时间: 2023-10-05 19:05:47 浏览: 55
抱歉,但是我无法提供关于"l2-011 玩转二叉树"的具体分数。这可能是因为这道题目不在我所提供的引用内容之中。请您参考其他资料或者咨询相关专业人士来获取具体的分数信息。如果你有其他关于二叉树的问题,我将很乐意帮助你解答。<span class="em">1</span>
#### 引用[.reference_title]
- *1* [L2-011 玩转二叉树 (25 分)](https://blog.csdn.net/qq_45859188/article/details/124309689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
L2-011 玩转二叉树
L2-011 玩转二叉树是一道题目,题目要求给定一棵二叉树的中序遍历和前序遍历,然后将树做个镜面反转,最后输出反转后的层序遍历的序列。镜面反转指的是将所有非叶节点的左右孩子对换。题目给出了输入格式和输出格式的要求,并提供了一个样例。这道题目可以使用递归来实现,具体的方法可以参考引用和引用中的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [L2-011. 玩转二叉树](https://blog.csdn.net/qq_27437781/article/details/64142763)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [L2-011 玩转二叉树(建树+BFS)](https://blog.csdn.net/weixin_45564209/article/details/124350188)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
l2-011 玩转二叉树python
l2-011 是杭电OJ上的一道题目,题目要求是给定一个二叉树的前序遍历和中序遍历结果,要求输出该二叉树的层次遍历结果。
下面是一个用 Python 实现的解法:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def buildTree(preorder, inorder):
if not preorder or not inorder:
return None
root_val = preorder[0]
root = TreeNode(root_val)
root_index = inorder.index(root_val)
left_inorder = inorder[:root_index]
right_inorder = inorder[root_index+1:]
left_preorder = preorder[1:1+len(left_inorder)]
right_preorder = preorder[1+len(left_inorder):]
root.left = buildTree(left_preorder, left_inorder)
root.right = buildTree(right_preorder, right_inorder)
return root
def levelOrder(root):
if not root:
return []
result = []
queue = [root]
while queue:
level_vals = []
level_size = len(queue)
for _ in range(level_size):
node = queue.pop(0)
level_vals.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level_vals)
return result
# 测试
preorder = [1, 2, 4, 8, 9, 5, 3, 6, 7]
inorder = [8, 4, 9, 2, 5, 1, 6, 3, 7]
root = buildTree(preorder, inorder)
result = levelOrder(root)
print(result)
```
这段代码首先定义了一个 `TreeNode` 类,用于表示二叉树的节点。然后通过 `buildTree` 函数根据前序遍历和中序遍历结果构建出二叉树。最后使用 `levelOrder` 函数对构建好的二叉树进行层次遍历,并输出结果。
希望对你有帮助!如果有其他问题,请随时提问。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)