以下是使用 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. 先序遍历输出时,注意控制最后的空格。 [2024-12-02 09:49:52 | AI写代码神器 | 452点数解答]