java实现给定一棵二叉树,使用递归的方法实现二叉树的左右子树交换,并输出交换后的二叉树的先序遍历结果
时间: 2023-10-30 09:08:13 浏览: 97
好的,我可以回答你的问题。以下是java代码实现:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class Solution {
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
TreeNode temp = root.left;
root.left = invertTree(root.right);
root.right = invertTree(temp);
return root;
}
public void preOrder(TreeNode root) {
if (root == null) return;
System.out.print(root.val + " ");
preOrder(root.left);
preOrder(root.right);
}
public static void main(String[] args) {
Solution solution = new Solution();
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
root.right.left = new TreeNode(6);
root.right.right = new TreeNode(7);
solution.invertTree(root);
solution.preOrder(root);
}
}
```
在以上代码中,我们首先定义了一个`TreeNode`的类。然后实现了一个`Solution`的类,其中`invertTree`方法使用递归的方式交换二叉树的左右子树。`preOrder`方法实现了二叉树的先序遍历,用于输出交换后的二叉树的遍历结果。在`main`方法中,我们创建了一棵二叉树,并对其进行左右子树交换,然后输出交换后的二叉树的先序遍历结果。
希望这个代码能够帮到你。
阅读全文