Python 实现二叉树左右翻转及先序遍历输出,附代码与注意点
以下是使用 Python 实现的代码: ```python class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def build_tree(nodes, d): root = TreeNode(nodes[0][0]) queue = [root] index = 1 for i in range(1, d): new_queue = [] for node in queue: if index < len(nodes[i]): left_val = nodes[i][index] if left_val!= -1: node.left = TreeNode(left_val) new_queue.append(node.left) index += 1 if index < len(nodes[i]): right_val = nodes[i][index] if right_val!= -1: node.right = TreeNode(right_val) new_queue.append(node.right) index += 1 queue = new_queue return root def reverse_tree(root): if root is None: return root.left, root.right = root.right, root.left reverse_tree(root.left) reverse_tree(root.right) def preorder_traversal(root): if root is not None: print(root.val, end=' ') preorder_traversal(root.left) preorder_traversal(root.right) t = int(input()) for _ in range(t): n, d = map(int, input().split()) nodes = [] for _ in range(d): nodes.append(list(map(int, input().split()))) root = build_tree(nodes, d) reverse_tree(root) preorder_traversal(root) print() ``` 需要注意的逻辑点: 1. 构建树的过程中,要正确处理节点不存在的情况。 2. 翻转树时,要确保左右子树完全交换。 3. 先序遍历输出时,注意控制最后的空格。 ######[AI写代码神器 | 452点数解答 | 2024-12-02 09:49:52]
- C语言实现整数“第二数位”翻转:代码详解与复杂度分析(字节豆包 | 523点数解答 | 2025-11-10 19:54:57)99
- C++实现整数“第二数位”翻转:代码详解与复杂度分析(字节豆包 | 462点数解答 | 2025-11-10 20:30:20)116
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)496
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)449
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)441
- JS 巧用 for in 循环逐行输出对象 key:value,还有关键判断!( | 208点数解答 | 2024-05-20 22:15:55)377
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)350
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)420
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)443
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)550
- 解决Java调用Python接口时中文值乱码问题:设置字符编码为UTF-8(讯飞星火 | 264点数解答 | 2024-06-06 17:27:09)416